質問

Outlook の現在実行中のバージョンを取得しようとしています。または、Outlook が実行されていない場合は Outlook を起動しようとしています。, しかし、Windows 7 で Outlook アプリケーション オブジェクトを取得または作成するときにいくつかの問題が発生します。これは、Vista と 7 で制限されているユーザー権限に関係があると思います。Outlook 2010 を使用して作業しています。

編集: これらのエラーは、Outlook 2010 インスタンスをすでに起動している場合にのみ表示されます。Outlook が起動していなくても、アプリケーションはスムーズに実行できます (Outlook インスタンスを単独で起動できます)。

誰かが Outlook アプリケーションのバージョンを正しく取得する方法を教えていただければ、非常に役立ちます。

私が実行しているコードは、例外をトリガーし続ける長い try-catch ブロックです。


try
{
  // create an application instance of Outlook
  oApp = new Microsoft.Office.Interop.Outlook.Application();
}
catch(System.Exception ex)
{
  try
  {
     // get Outlook in another way
     oApp = Marshal.GetActiveObject("Outlook.Application") as Microsoft.Office.Interop.Outlook.Application;
  }
  catch (System.Exception ex2)
  {
     // try some other way to get the object
     oApp = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application")) as Microsoft.Office.Interop.Outlook.Application;
  }
}

アプリケーションは次の例外をスローします。

新しい Outlook アプリケーション インスタンスを作成しようとすると、次のようになります。

CLSID {0006F03A-0000-0000-C000-000000000046} を持つコンポーネントの COM クラス ファクトリの取得は、次のエラーのため失敗しました:80080005。

Outlook アプリ インスタンスを取得しようとすると、次のようになります。

操作を利用できません (HRESULT からの例外:0x800401E3 (MK_E_UNAVAILABLE))

アクティベーターを介してインスタンスを作成しようとすると

CLSID {0006F03A-0000-0000-C000-000000000046} を持つコンポーネントの COM クラス ファクトリの取得は、次のエラーのため失敗しました:80080005。

ありがとう!

役に立ちましたか?

解決

どうやらこれらのエラーは、私が異なるユーザー許可レベル(そのうちの1つは管理者として、もう1つは通常のユーザーとして)を使用していたため、これらのエラーがトリガーされたようです。

他のヒント

  1. スタート]メニューで[実行]を選択します
  2. dcomcnfgと入力し、[OK]をクリックします
  3. コンポーネントサービスウィンドウが開きます。
  4. ノードコンポーネントサービスを展開 - > mycomputer-> dcom config。
  5. アプリケーション(Outlookメッセージ添付ファイル)を右クリックし、[プロパティ]を選択します。
  6. 必要なものは何でもIDタブをクリックします。
  7. 「インタラクティブユーザー」をクリックしてからOK

オフィスの設置が破損したように見えます。

管理者として再実行セットアップにより、インストールを修復してみてください。

Visual Studioからスタンドアロンアプリケーションを実行している場合、またはオフィス製品を使用するVisual Studioからデバッグを実行している場合、この問題の両方(Visual Studio製品とオフィス製品)が同じアクセスレベルを持つ必要があります。発生しますが、私はオンラインで見ています。非常に多くの人がこの問題を抱えている間、サービスのOutlookオブジェクトを初期化している間にこの問題を抱えています。私にとって問題を解決したことが他の人にも役立つことを願っています。手順に沿って進んでください。

  1. コマンドプロンプトに移動し、次のと入力してEnterを押します。これにより、コンポーネントサービスが開きます。

    MMC comexp.msc /32

enter image description here

enter image description here

  1. ノードコンポーネントサービスを展開 - > mycomputer-> dcom config

  2. 次に、目的のアプリケーション(この場合はOutlookメッセージの添付ファイル)を見つけて、アプリケーションを右クリックします(これらの手順に従う場合、この問題はすべてのオフィスアプリケーションを解決できます)。

  3. ID]タブに移動して、インタラクティブユーザーを選択し、[OK]を押します。これはあなたの問題を解決するはずです。

enter image description here

インタラクティブユーザー ユーザーに記録されたものに他なりません。サービスを通じてオフィス製品にアクセスしようとしている場合、アクセスレベルは同じでなければならず、それが適切なユーザーを指定する必要がある理由です。ログインせずにサーバー上でサービスを実行する場合は、サーバーがサービスの実行に使用されるユーザーアカウントと、このユーザーとしてプロパティで指定されているオフィス製品を実行するために使用されることを確認する必要があります(このユーザーとして指定されています(お願いします) [プロパティ]ダイアログボックスをご覧ください)。このダイアログボックスに記載されているさまざまな種類のユーザーアカウントについて知りたい場合は、次のMicrosoftリンクを参照してください。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms692541%28v = vs.85%29.aspx

私の場合、Visual Studio が管理者として実行されていたことが問題の原因でした。通常のユーザーとして実行すると、最終的にこのエラーは解消されました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top