在Windows 7中获取/创建Outlook应用程序
-
04-10-2019 - |
题
我正在尝试获取当前的Outlook或启动Outlook的当前运行版本,以防万一, ,但是我在Windows 7中获得或创建Outlook应用程序对象有一些问题。我认为这与Vista和Vista中有限制的用户特权有关。我正在与Outlook 2010合作。
编辑: 这些错误仅在我已经开始了Outlook 2010实例时出现。如果未启动Outlook,则应用程序可以平稳运行(它可以单独启动Outlook实例)。
如果有人能告诉我如何正确获取Outlook应用程序版本,那真的很有帮助。
我正在运行的代码是一个长期的键入块,它一直触发异常:
try
{
// create an application instance of Outlook
oApp = new Microsoft.Office.Interop.Outlook.Application();
}
catch(System.Exception ex)
{
try
{
// get Outlook in another way
oApp = Marshal.GetActiveObject("Outlook.Application") as Microsoft.Office.Interop.Outlook.Application;
}
catch (System.Exception ex2)
{
// try some other way to get the object
oApp = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application")) as Microsoft.Office.Interop.Outlook.Application;
}
}
该应用程序给我带来以下例外:
当我尝试创建一个新的Outlook应用程序实例时:
通过CLSID {0006F03A-0000-0000-C000-0000000046}检索组件的COM类工厂,由于以下错误:80080005。
当我尝试获取Outlook应用程序实例时:
操作不可用(Hresult的例外:0x800401E3(MK_E_UNAVAILABLE))
当我尝试通过激活器创建实例时
通过CLSID {0006F03A-0000-0000-C000-0000000046}检索组件的COM类工厂,由于以下错误:80080005。
谢谢!
解决方案
显然,这些错误是因为我正在运行Outlook和不同用户权限级别的应用程序(其中一个是管理员,另一个作为常规用户)。
其他提示
- 在开始菜单中选择运行
- 键入dcomcnfg,然后单击“确定”
- 组件服务窗口打开。
- 展开节点组件服务 - > myComputer-> DCOM配置。
- 右键单击应用程序(Outlook Message附件),然后选择属性。
- 单击身份标签,无论必要。
- 单击“交互式用户”,然后才能确定
看起来您的办公室安装似乎已经损坏了。
尝试通过重新设置为管理员修复安装。
的确,如果您正在通过Visual Studio或Visual Studio进行调试的独立应用程序,则使用Office产品,您应该对(Visual Studio和Office Products)具有相同的访问级别,这就是为什么此问题的原因之一发生了,但我在网上看到,有很多人在服务中初始化Outlook对象时遇到了这个问题。我希望解决这个问题的问题也能帮助他人。请沿着步骤遵循。
转到命令提示符,键入以下内容,然后按Enter。这打开了组件服务:
MMC COMEXP.MSC /32
展开节点组件服务 - > myComputer-> DCOM配置
现在,找出您所需的应用程序(在这种情况下为Outlook Message附件),然后右键单击该应用程序(如果您遵循以下步骤,则可以解决所有办公应用程序)并选择属性。
转到Identity选项卡并选择交互式用户,然后按确定。这应该解决您的问题。
交互式用户 只不过是登录用户。当您尝试通过服务访问办公产品时,访问级别必须相同,这就是您需要指定适当用户的原因。如果您想在服务器上运行服务而不登录到它,则需要确保服务器具有一个用户帐户,该帐户将用于运行该服务以及该属性中指定的运行Office产品(请使用该用户(请)查看“属性”对话框)。如果您想了解此对话框中提到的不同类型的用户帐户,请参阅以下Microsoft链接。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms692541%28v=vs.85%29.aspx
就我而言,视觉工作室是作为管理员造成问题的。当我作为普通用户运行时,我最终摆脱了这个错误。