使用提升的权限进行调试时,Marshal.GetActiveObject("Outlook.Application")会抛出MK_E_UNAVAILABLE

Jus*_*ard 8 .net c# com-interop elevated-privileges visual-studio-2013

当Visual Studio未作为管理员启动时,此代码在版本r调试中运行没有问题.

Marshal.GetActiveObject("Outlook.Application");
Run Code Online (Sandbox Code Playgroud)

但是,当我以管理员身份启动Vs并在调试中运行相同的行时,我收到以下错误:

System.Runtime.InteropServices.COMException
Operation unavailable (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题.

小智 10

我猜你是以管理员身份运行Visual Studio(以管理员身份运行启动),而Outlook是以用户身份打开的,用户是在Windows登录下登录的.因此,Visual Studio在与Outlook客户端不同的用户下运行.