【发布时间】:2017-09-29 10:37:31
【问题描述】:
我正在尝试在我的 Excel 加载项中获取 Outlook 应用程序对象。
如果有一个正在运行的 Outlook 实例,它应该得到它,如果没有,它应该使用 Outlook 对象模型创建一个。
这是我现在的代码:
public static Outlook.Application GetApplicationObject()
{
Outlook.Application application = null;
if (Process.GetProcessesByName("OUTLOOK").Count() > 0)
{
application = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
}
else
{
application = new Outlook.Application();
}
return application;
}
我的问题:它找到 Outlook 进程,但无法获取它们,抛出以下错误消息:
操作不可用(HRESULT 异常:0x800401E3 (MK_E_UNAVAILABLE))
我尝试一步步调试,并监控了任务管理器。我可以看到我有一个 Outlook 实例,但它只是任务栏右侧的一个图标。这是否意味着,实例尚未完全加载,无法访问,无法从中获取 Application 对象?
我最终修改了我的代码,并将 if-else 分成 2 个 try-catch,并各自返回,但我仍然认为上面的代码应该是可用的。
【问题讨论】:
标签: c# outlook vsto outlook-addin