Outlook检索COM类工厂时出错

Outlook检索COM类工厂时出错,outlook,uac,com-automation,Outlook,Uac,Com Automation,我们有向outlook添加联系人的功能 我只想对正在运行的现有outlook进程执行此操作,如果未运行则打开此操作 我得到一个错误: 正在检索具有CLSID的组件的COM类工厂 {0006F03A-0000-0000-C000-0000000000 46}由于以下原因失败 错误:80080005服务器执行失败HRESULT异常: 0x80080005 CO_E_服务器_执行_失败。如果进程未运行 已经在运行了 注意:下面的方法被调用了2次 我的代码是: Private Sub InitObjec

我们有向outlook添加联系人的功能

我只想对正在运行的现有outlook进程执行此操作,如果未运行则打开此操作

我得到一个错误:

正在检索具有CLSID的组件的COM类工厂 {0006F03A-0000-0000-C000-0000000000 46}由于以下原因失败 错误:80080005服务器执行失败HRESULT异常: 0x80080005 CO_E_服务器_执行_失败。如果进程未运行 已经在运行了

注意:下面的方法被调用了2次

我的代码是:

Private Sub InitObject()
    If (Process.GetProcessesByName("OUTLOOK").Count > 0) Then
        objOutlook = DirectCast(Marshal.GetActiveObject("Outlook.Application"), Outlook.Application)
        'If objOutlook Is Nothing Then
    Else
        objOutlook = New Outlook.Application()
    End If
    If objNamespace Is Nothing Then
        objNamespace = objOutlook.GetNamespace("MAPI")
        objNamespace.Logon("", "", False, False)
    End If

    If objFolder Is Nothing Then
        objFolder = objNamespace.GetDefaultFolder(10)
    End If
End Sub

我读了几篇关于这个的帖子,上面写着“管理员特权”等等。现在我运行的Visual Studio没有管理员权限。我很抱歉,在不使用Visual Studio的生产环境中也会出现此错误?

您在有问题的PC上安装了什么Outlook版本?是Outlook 2010的Click2Run版吗

无论如何,我认为有两个可能的原因:

您已经在电脑上安装了Office 2010的Click2Run版本。事实上,Office 2010的Click2Run版本不支持自动化。有关更多信息,请参阅。你也可以找到这篇文章。 您的程序和MS Outlook必须以管理员身份或普通权限级别运行。他们应该享有同样的特权。你可能会发现这篇文章很有帮助。 请注意,Outlook是一个单独的组件。即,如果它已在运行,则在创建新的Outlook应用程序实例时,您将获得指向已在运行的实例的指针