17

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))

Activator を使用してインスタンスを作成しようとすると

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

ありがとうございました!

4

5 に答える 5

32

これらのエラーは、Outlook とアプリケーションを異なるユーザー権限レベルで実行していたために発生したようです (1 つは管理者として、もう 1 つは通常のユーザーとして)。

于 2010-09-23T15:31:06.270 に答える
4
  1. スタートメニューで実行を選択
  2. dcomcnfg と入力し、[OK] をクリックします。
  3. コンポーネント サービス ウィンドウが開きます。
  4. ノード Component Services -> MyComputer -> DCOM Config を展開します。
  5. アプリケーション (Outlook Message Attachment) を右クリックし、プロパティを選択します。
  6. 必要に応じて [ID] タブをクリックします。
  7. 「対話型ユーザー」をクリックしてから「OK」をクリックします
于 2012-09-30T09:52:14.663 に答える
2

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

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

    mmc comexp.msc /32

ここに画像の説明を入力

ここに画像の説明を入力

  1. ノード コンポーネント サービス -> MyComputer -> DCOM Config を展開します。

  2. 目的のアプリケーション (この場合は Outlook Message Attachment) を見つけて、そのアプリケーションを右クリックし (これらの手順に従うと、すべての Office アプリケーションに関連するこの問題を解決できます)、プロパティを選択します。

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

ここに画像の説明を入力

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

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

于 2014-12-31T19:27:51.353 に答える
1

Officeのインストールが破損しているように見えます。

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

于 2010-09-20T10:55:32.383 に答える
0

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

于 2014-04-07T09:18:50.647 に答える