【问题标题】:JACOB can't co-create Outlook 2010 objectJACOB 无法共同创建 Outlook 2010 对象
【发布时间】:2014-07-22 15:00:45
【问题描述】:

在启用了 UAC 并运行 Outlook 2010 的 Windows 7 32 / 64 位上,我在尝试通过以下方式创建新的 ActiveXComponent 时收到 ComFailException:

ActiveXComponent axOutlook = new ActiveXComponent("Outlook.Application");

是否有人找到了解决此问题的源代码,或者此问题是否已在更高版本的 JACOB 中得到纠正?目前,我们告诉客户在通过电子邮件发送报告之前关闭 Outlook。

【问题讨论】:

  • 您是否得到特定的错误代码? ComFailException 会暴露它吗?
  • 查看调试窗口,我看到了 hr=-2146959355。否则,com.jacob.com.ComFailException 不会暴露错误代码。

标签: java outlook jacob


【解决方案1】:

错误是 CO_E_SERVER_EXEC_FAILURE。

当您的代码和 Outlook 在不同的安全上下文中运行时会引发该错误。

【讨论】:

  • 由于 Outlook 已经在运行,我无法暂时打开 Outlook 的新实例,然后在发送完电子邮件后关闭?这是 JACOB 库的错误还是设计?
  • 不,就像 Outlook 的工作方式一样 - 它是一个单例,任何时候都只有一个实例在运行。您需要确保两个应用程序处于相同的安全上下文中。任一应用程序是否以提升的权限运行(以管理员身份运行)?
  • 两者都以本地用户身份运行并具有相同的权限。 JACOB 能否锁定现有的 Outlook 单例并在那里执行任何操作?我一直在网上寻找类似的东西,但空手而归。
  • 如果 Outlook 已经在运行,您将始终获得指向该运行实例的指针 - 这就是单例的含义。
  • 我想新的问题是 JACOB 可以附加到单例吗?如何附加?通过我的在线搜索,我没有找到任何问题的解决方案。
【解决方案2】:

在 Windows 7 下(以管理员身份)在 Eclipse 中运行 Jacob 代码时出现此错误,并且 Outlook 以正常权限运行。当我更改 Outlook 的权限(以管理员身份运行)时,它起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2014-04-12
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多