C# 在 VSTO 加载项中获取正在运行的 Outlook 实例

2023-11-29

我正在尝试在 Excel 加载项中获取 Outlook 应用程序对象。

如果有正在运行的 Outlook 实例,它应该得到这一点,如果没有,它应该使用 Outlook 对象模型创建一个。

这是我现在的代码:

public static Outlook.Application GetApplicationObject()
{
    Outlook.Application application = null;

    if (Process.GetProcessesByName("OUTLOOK").Count() > 0)
    {
        application = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
    }
    else
    {
        application = new Outlook.Application();
    }
    return application;
}

我的问题:它找到 Outlook 进程,但无法获取它们,并抛出以下错误消息:

操作不可用(HRESULT 异常:0x800401E3 (MK_E_UNAVAILABLE))

我尝试一步步调试它,并监视任务管理器。我可以看到我有一个 Outlook 实例,但它只是任务栏右侧的一个图标。这是否意味着该实例尚未完全加载,并且无法访问它以从中获取 Application 对象?

我最终修改了我的代码,并将 if-else 分成 2 个 try-catch,并分别返回,但我仍然认为上面的代码应该可用。


Outlook 是单例,所以new Outlook.Application()将始终有效 - 如果它已经在运行,您将获得该正在运行的对象。

确保两个应用程序(Excel 和 Outlook)在相同的安全上下文中运行。任一应用程序是否以提升的权限运行(以管理员身份运行)?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 在 VSTO 加载项中获取正在运行的 Outlook 实例 的相关文章

随机推荐

  • Docker 入门教程登录错误

    我正在尝试跟随初学者tutorial在 Docker 的网站上 我在登录时遇到错误 OS is Ubuntu 14 04 我没有使用 VirtualBox 也没有使用任何代理 并且想要推送到 常规 docker 存储库 不是私有存储库 我发
  • 如何使 PictureBox 真正透明

    我有一个 PictureBox 可以垂直移动 PictureBox 中显示的图像是透明的 GIF 因此在图像查看器中查看时 它没有背景 问题是 当我在应用程序中移动 PictureBox 时 PictureBox 背景移动得太奇怪 几乎就像
  • 使用 React Hooks 时出现 UseState 错误

    我正在使用钩子 但出现此错误 第25行 React Hook React useState 在函数 contact 中被调用 该函数既不是React函数组件 也不是自定义React Hook函数react hooks rules of ho
  • 如何在 Kotlin 中实现 Builder 模式?

    大家好 我是 Kotlin 世界的新手 我喜欢到目前为止所看到的 并开始考虑将应用程序中使用的一些库从 Java 转换为 Kotlin 这些库充满了带有 setter getter 和 Builder 类的 Pojo 现在我在 Google
  • 路径相关样式表导入漏洞

    为了避免路径相对样式表导入漏洞 我应该使用完整路径 例如 代替 你怎么认为 只需添加一个前导斜杠并使路径相对于根目录 而不是此漏洞所依赖的相对路径 不需要域 方案
  • 使用哪种数据结构来求解简单的数学方程

    当采用 10 5 15 等表达式并遵循运算顺序时 如何最好地解决这样的问题 什么样的数据结构最好 Thanks 我会选择 Dijkstra s调车场算法来创建AST
  • 如何获取量角器中选定的选项值

    如何获取选择框当前选定的选项值 我已经尝试过下面的代码 但它不起作用 element by css selectbox all by tagName option then function options options forEach
  • 什么是可变类。我们如何在 C# 中创建可变和不可变类

    在 CMMI 5 级公司面试中 我被问及如何在 C 中创建可变和不可变类 我听说过可变和不可变这意味着可以换 and 不能变 like String and 字符串生成器 但是 我不知道如何创建可变类和不可变类 我们为此提供了字符串和字符串
  • 我如何在不同类型之间的打字稿中使用 Array.includes

    如果 Array includes 结果类型是输入对象类型的更严格类型 它会出错 我该如何处理这个问题 这是案例的例子 索引 d ts type OddNumberType 1 3 5 7 9 type AllNumberType OddN
  • 如何使用 Visual Studio 安装程序安装可再发行组件?

    我希望让我的安装程序 Visual Studio 安装程序 安装可再发行组件 Visual C 2013 可再发行组件 x86 以防它未安装在 PC 上或为我的程序安装必要的 dll 我don t希望设置启动条件 如果可能的话 我希望可再发
  • bson.errors.InvalidDocument:键“$oid”不得以“$”开头尝试使用 pymongo 插入文档

    我想将文档从它所说的 json 文件插入到集合中bson errors InvalidDocument key oid must not start with 我该如何解决 文档示例 name Company id oid 1234as12
  • NSNotification 的麻烦

    当我的类初始化时 它会将自己添加为一堆不同 Wi Fi 通知的观察者 由于某种原因 当发生这些情况时 选择器不会运行 有任何想法吗 提前谢谢你了 id init if self sself self NSNotificationCenter
  • XMLHttpRequest POST 到 PHP

    我在管理在 JS 上向我自己的服务器发出的简单 XMLHttpRequest 的答案时遇到了一些麻烦 我有一些令人不安的答案 这是我的代码 JavaScript function callPHP var xml new XMLHttpReq
  • 停止收集函数删除因子标签

    我正在尝试使用 tidyr 中的收集函数 但它正在从分解数据中删除标签 我的数据看起来像这样 gt require tidyr gt messy data frame x rep seq 0 2 2 y runif 6 z runif 6
  • 在运行时检索 JPA 中实体的表名称的代码示例?

    我想列出我的 JPA 实体模型的所有数据库表名称 但我无法获得正确的实体类 EntityManagerFactory factory Set
  • 运行 python 生成器清理代码的最佳方法

    我正在尝试编写一个生成器函数 该函数从数据库中获取行并一次返回一行 但是 我不确定下面标记为 的清理代码是否按照我的想法执行 如果没有 将清理代码放入生成器本身并在最后一个yield语句之后执行的最佳方法是什么 我查看了捕获 StopIte
  • 绕过 NetBeans 6.5 中生成的代码的锁定?

    在 NetBeans 中 GUI Builder 生成的代码是您无法通过编辑器使用的 我知道您可以切换到设计模式并指定自定义代码 然后以这种方式间接输入编辑 但无法编辑距光标 2 行的文本是一件痛苦的事情 我可以允许在这些区域内进行编辑吗
  • 如何在CKEditor 5中启用图像上传支持?

    我将在我的项目中使用 ckeditor v5 我尝试使用图像插件 但没有找到足够的信息 如果你看到德莫here 您可以通过拖放轻松上传图像 但是 当我尝试使用下载 ballon zip 进行拖放图像时 没有任何反应 也没有错误 有没有办法在
  • 如何在 WildFly 10 中动态更改 JMS 队列 MDB 池大小

    我正在使用 WildFly 10 1 它随 Artemis 作为新的 JMS 提供程序提供 但我无法找到如何动态更改特定 MDB 的消费者线程数 我有一个队列和一个使用队列中消息的消息侦听器 MDB 现在我想动态控制域必须启动的最大消费者线
  • C# 在 VSTO 加载项中获取正在运行的 Outlook 实例

    我正在尝试在 Excel 加载项中获取 Outlook 应用程序对象 如果有正在运行的 Outlook 实例 它应该得到这一点 如果没有 它应该使用 Outlook 对象模型创建一个 这是我现在的代码 public static Outlo