C# 当outlook已打开时,无法使用outlook interop创建电子邮件

C# 当outlook已打开时,无法使用outlook interop创建电子邮件,c#,wpf,mvvm,outlook,C#,Wpf,Mvvm,Outlook,如何打开outlook窗口?我尝试了下面的代码,但当outlook实例已在运行时,这不起作用- System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName("OUTLOOK"); int processCount = processes.Length; if (processCount != 0) { **outlookApp = Marshal.GetActiveObje

如何打开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美分放进去

问题似乎在于Visual Studio通常以管理员身份运行,而Outlook以用户权限运行

如果关闭Outlook并运行代码,则工作正常

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

如果我以管理员身份运行Outlook并在VisualStudio中运行应用程序,则效果良好


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

因为我有同样的问题,所以我投入了2美分

问题似乎在于Visual Studio通常以管理员身份运行,而Outlook以用户权限运行

如果关闭Outlook并运行代码,则工作正常

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

如果我以管理员身份运行Outlook并在VisualStudio中运行应用程序,则效果良好


如果Outlook正在运行但具有不同的权限,我还没有找到获取Outlook
应用程序的实例的解决方法。

在我的代码中,我使用simple
outlookApp=new Microsoft.Office.Interop.Outlook.Application()如果Outlook已经运行-我没有任何异常。不知道为什么…=)那么,如果您只是尝试使用else,而不检查Outlook是否运行呢?在我的代码中,我使用simple
outlookApp=new Microsoft.Office.Interop.Outlook.Application()如果Outlook已经运行-我没有任何异常。不知道为什么…=)那么,如果您只是尝试使用else,而不检查Outlook是否运行呢?六年过去了,您的几个场景仍然正确。。。感谢“在visual studio之外运行应用程序(从Bin文件夹),Outlook运行它也可以正常工作”;这就是我现在测试我的应用程序的方式…六年过去了,你的几个场景仍然正确。。。感谢“在visual studio之外运行应用程序(从Bin文件夹),Outlook运行它也可以正常工作”;这就是我现在测试我的应用程序的方式。。。