【发布时间】:2017-02-08 07:04:18
【问题描述】:
我正在尝试编写一个 C# 程序,如果没有一个 Outlook 实例正在运行,它将启动一个新实例,或者如果它恰好已经在运行,则附加到第一个实例。
我发现以前的讨论already 几乎确定了我想要实现的目标。 Microsoft Solution 的问题是我的一些 Outlook 插件/加载项无法正常工作,例如 iManage Filesite/Worksite。 Outlook 启动时,该插件似乎在功能区中,但缺少某些功能,如果我尝试搜索等。Outlook 停止响应并崩溃。如果从控制台或类似方式启动 Outlook,则插件可以正常工作:
System.Diagnostics.Process.Start(@"OUTLOOK.exe");
但是我永远无法附加到正在运行的 Outlook 实例,因为
application = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
失败并出现 COM 错误 (0x800401E3 MK_E_UNAVAILABLE)。如果我调试应用程序并逐步完成它,我只能绕过这个错误。我尝试让 Outlook 有时间启动,切换活动窗口(改变焦点),但这些选项都不起作用。
【问题讨论】:
-
从 Outlook 中删除您的帐户。清除outlook的PST文件。在安全模式下打开 Outlook。添加您的帐户并等待所有文件夹更新。关闭并打开 Outlook。尝试再次执行问题中提到的相同操作。