代码之家  ›  专栏  ›  技术社区  ›  Alex

在Windows7中获取/创建Outlook应用程序

  •  15
  • Alex  · 技术社区  · 14 年前

    我正在尝试获取当前正在运行的Outlook版本,或者启动Outlook以防它不运行 ,但在Windows7中获取或创建Outlook应用程序对象时遇到一些问题。我认为这与Vista和7中限制用户权限有关。我正在使用outlook2010。

    编辑:

    如果有人能告诉我如何正确获取Outlook应用程序版本,那将非常有帮助。

    我运行的代码是一个长try-catch块,它不断触发异常:

    
    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-000000000046}的组件的COM类工厂失败:80080005。

    操作不可用(HRESULT异常:0x800401E3(MK\u E\u不可用))

    当我试图通过Activator创建一个实例时

    由于以下错误,检索CLSID为{0006F03A-0000-0000-C000-000000000046}的组件的COM类工厂失败:80080005。

    5 回复  |  直到 14 年前
        1
  •  32
  •   Alex    14 年前

    显然,触发这些错误是因为我在不同的用户权限级别上运行Outlook和应用程序(其中一个作为管理员,另一个作为普通用户)。

        2
  •  4
  •   Moustafa    12 年前
    1. 在“开始”菜单中选择“运行”
    2. 键入dcomcnfg并单击“确定”
    3. 组件服务窗口已打开。
    4. 展开节点组件服务->MyComputer->DCOM配置。
    5. 右键单击应用程序(Outlook邮件附件)并选择“属性”。
    6. 必要时单击“标识”选项卡。
    7. 单击“交互式用户”,然后单击“确定”
        3
  •  2
  •   Dhruv Rangunwala    10 年前

    确实,如果您正在从VisualStudio运行独立的应用程序,或者在使用office产品的VisualStudio中调试,您应该对这两种产品(visualstudio和Office产品)具有相同的访问级别,这也是出现此问题的原因之一,但我在网上看到,在初始化服务中的outlook对象时,有这么多人会遇到此问题。我希望为我解决这个问题的方法也能帮助其他人。请沿着台阶走。

    1. 转到命令提示符,键入以下命令并按enter键。这将打开组件服务:

    enter image description here

    enter image description here

    1. 展开节点组件服务->MyComputer->DCOM配置

    2. 现在找到所需的应用程序(在本例中为Outlook邮件附件),右键单击该应用程序(如果遵循这些步骤,则可以解决与此问题相关的所有office应用程序),然后选择properties。

    3. 转到“标识”选项卡,选择交互式用户,然后按“确定”。这应该能解决你的问题。

    enter image description here

    交互式用户 只不过是登录的用户。当您试图通过服务访问office产品时,访问级别必须相同,这就是您需要指定适当用户的原因。如果要在服务器上运行服务而不登录到该服务器,则需要确保该服务器具有一个用户帐户,该帐户将用于运行服务以及以该用户身份运行属性中指定的office产品(请查看“属性”对话框)。如果要了解此对话框中提到的不同类型的用户帐户,请参阅以下Microsoft链接。

    http://msdn.microsoft.com/en-us/library/windows/desktop/ms692541%28v=vs.85%29.aspx

        4
  •  1
  •   Dirk Vollmar    14 年前

    看起来您的Office安装已损坏。

    以管理员身份重新运行安装程序,尝试修复安装。

        5
  •  0
  •   intersum    11 年前

    在我的例子中,是visualstudio作为管理员运行导致了这个问题。当我以普通用户的身份运行它时,我终于摆脱了这个错误。