我正在尝试自动化Outlook发送电子邮件。我正在使用的简化代码是:
Dim outlook As Outlook.Application = Nothing
Try
outlook = New Outlook.Application
Catch ex as Exception
MsgBox(ex.Message)
End Try
每当我在打开Outlook的Win8.1上运行它时,我都会收到错误消息:
8008005服务器执行失败(HRESULT异常:0x8008005(CO_E_SERVER_EXEC_FAILURE))
研究错误表明原因是因为我打开Outlook无法创建新实例。所以我将我的代码修改为:
Dim outlook As Outlook.Application = Nothing
Try
If Process.GetProcessesByName("OUTLOOK").Length > 0 Then
outlook = Marshal.GetActiveObject("Outlook.Application")
Else
outlook = New Outlook.Application
End If
Catch ex as Exception
MsgBox(ex.Message)
End Try
当我运行它时,它尝试连接到现有进程,我收到错误:
操作不可用(HRESULT异常:0x800401E3(MK_E_UNAVAILABLE))
所以我既不能创建新实例也不能连接到现有实例。我不知道该怎么做。
答案 0 :(得分:2)
CO_E_SERVER_EXEC_FAILURE表示您的应用和Outlook的安全上下文不同。 确保应用程序都没有以提升的权限运行(例如,以管理员身份运行)。