実行していない場合はOutlookの新しいインスタンスを開始するか、既に実行されている場合は最初のインスタンスにアタッチするC#プログラムを作成しようとしています。Interop C#を使用してOutlookを起動または接続する方法は?
これまでのディスカッションalreadyでは、私が達成しようとしていることがかなりわかりました。 Microsoft Solutionの問題は、Outlookプラグイン/アドインの一部が正しく動作しないことです(iManage Filesite/Worksiteなど)。 Outlookが起動するとプラグインがリボンに表示されますが、一部の機能が失われ、検索などを試みるとOutlookが応答を停止してクラッシュします。
System.Diagnostics.Process.Start(@"OUTLOOK.exe");
しかし
application = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
は、COMエラー(0x800401E3 MK_E_UNAVAILABLE)で失敗するので、私は実行しているOutlookのインスタンスにアタッチことはできません。見通しは、コンソールなどから起動された場合、プラグインが正常に動作します。私は、アプリケーションをデバッグして、それを実行すれば、このエラーを回避することができます。私はアクティブなウィンドウを切り替える(フォーカスを変更する)Outlookの開始時間を許そうとしましたが、これらのオプションは機能しません。
Outlookからアカウントを削除します。 OutlookのPSTファイルをクリアします。 Outlookをセーフモードで開きます。アカウントを追加し、すべてのフォルダが更新されるまで待ちます。 Outlookを閉じて開きます。もう一度同じ質問をしてみてください。 – Gokul