当outlook已经打开时,未能创建一个包含outlook interop的电子邮件

时间:2012-11-06 13:05:59

标签: c# wpf mvvm outlook

如何打开展望窗口?我尝试了下面的代码,但是当outlook的实例已经运行时,这不起作用 -

System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName("OUTLOOK");

int processCount = processes.Length;
if (processCount != 0)
{
    **outlookApp = Marshal.GetActiveObject("Outlook.Application") as Microsoft.Office.Interop.Outlook.Application;** this is throwing the below error **
}
else
{
    outlookApp = new Microsoft.Office.Interop.Outlook.Application();
}

我得到了:

Error:
Operation unavailable (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))

有人可以提供替代方法或更改上述代码吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

因为我遇到了同样的问题所以加上我的2美分。

似乎Visual Studio通常作为管理员运行,而Outlook正在以用户权限运行是问题所在。

如果关闭Outlook并运行代码,它可以正常工作。

如果我在Visual Studio之外运行应用程序(来自Bin文件夹)并运行Outlook,它也可以正常工作。

如果我以管理员身份运行Outlook并在Visual Studio中运行该应用程序,则可以正常工作。

如果Outlook正在运行但是使用不同的权限,我还没有找到获取Outlook Application类实例的解决方法。