我正在编写一个程序,该程序需要打开 Microsoft Outlook 并在用户单击按钮时为其创建邮件项目。但是,当我这样做时,我收到以下错误:
由于以下错误,检索具有 CLSID {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80080005 服务器执行失败(来自 HRESULT 的异常:0x80080005 (CO_E_SERVER_EXEC_FAILURE))。
在研究了这个错误后,我发现我的程序和 MS Outlook都必须以管理员或普通权限级别运行。
所以这是我的问题......我如何使用与我当前正在运行的程序相同的权限级别通过 C# 代码打开 MS Outlook。我需要获取当前的权限级别,然后使用该权限级别打开 Outlook。到目前为止,我的研究没有运气。任何帮助表示赞赏!
这是我打开 MS Outlook 的代码(当前)以及我如何使用它:
// this will grab the current instance of outlook if it's running or make a new one
// however, it still doesn't have a way to open outlook with specific privileges...
//Application outlookApp = (Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Outlook.Application");
Application outlookApp = new Application();
MailItem mailItem = outlookApp.CreateItem(OlItemType.olMailItem);
mailItem.Subject = "Blah";
mailItem.HTMLBody= @"Various HTML stuff";
foreach (string documentPath in this.documentPaths)
{
mailItem.Attachments.Add(documentPath, 1, 1, documentPath);
}
mailItem.Display(true);
编辑:更改了我的代码以显示我也在使用 Outlook 应用程序做什么。