gpt4 book ai didi

ms-office - 如何在 C# 中运行时连接到 Outlook 2010?

转载 作者:行者123 更新时间:2023-12-04 00:42:52 24 4
gpt4 key购买 nike

我想要做的是向 winform 客户端添加一个“电子邮件至...”按钮,该按钮会打开一个新的 Outlook 邮件窗口并附加一个文件,以便用户可以转发它。如果 Outlook 尚未运行,我可以让 Outlook 集成正常工作。这是一个 C# .NET 4.0 winforms 应用程序,使用 Outlook 14.0 互操作库,针对在 Windows 7 64 位机器上运行的 Outlook 2010 32 位。由于其他原因,我已经将该应用程序编译为 x86,所以我怀疑它是 32/64 位问题。这是我的代码:

// Connect to outlook and create a new mail item
var app = new Outlook.Application();
var ns = app.GetNamespace("MAPI");
var mailItem = (Outlook.MailItem)ns.Application.CreateItem(Outlook.OlItemType.olMailItem);

// create the mail item and attach the file
mailItem.To = "";
mailItem.Subject = "Emailing: " + Path.GetFileName(_currentFilePath);
mailItem.Attachments.Add(_currentFilePath, Outlook.OlAttachmentType.olEmbeddeditem);

// show the email dialog window
mailItem.Display(true);

如果 Outlook 未运行,则它可以完美运行。打开后,我在尝试创建 Outlook.Application 对象的第一行出现以下错误:

Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).



任何想法会导致这种情况?这是某种版本冲突吗?

最佳答案

这是由于进程的特权。我通常以管理员身份运行 Visual Studio,但如果 Outlook 之前未以管理员身份启动,则 COM 调用将失败。

简单的解决方案。 以管理员身份运行两者或以正常权限级别运行两者。

关于ms-office - 如何在 C# 中运行时连接到 Outlook 2010?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6455448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com