c# - VSTO Outlook 集成 - 用于同步的 Outlook 关闭事件

标签 c# .net events vsto outlook-addin

我正在开发一个 VSTO Outlook 2007 加载项,该加载项基本上将 Outlook 数据与 Web 服务同步。我希望在应用程序中实现三种类型的同步:启动同步、手动同步和关机同步。前两个很简单并且已经完成。

但是,我无法找到合适的事件来触发以处理关闭时的同步。我尝试 Hook 以下两个事件,但当加载项无法访问 Outlook 数据时,它们似乎被触发得太晚了,这不起作用:

  • ((Outlook.ApplicationEvents_Event)Application).Quit(这个首先触发,但现在访问 Outlook 数据集合并更新它们已经太晚了)
  • ThisAddIn.Shutdown(这个在Quit之后触发,所以它也不好)

在 Outlook 关闭时,是否有其他事件在我可以使用的事件之前触发?或者也许有人知道在 Outlook 加载项中处理关闭时同步的任何其他方法?

最佳答案

Explorer.Close() 和 Inspector.Close() 在 Application.Quit() 之前触发 - 您可以在其中检查:

  • 在 Explorer.Close() 中:Application.Explorers.Count<=1 且 Application.Inspectors.Count==0
  • 在 Inspector.Close() 中:Application.Explorers.Count==0 和 Application.Inspectors.Count<=1

如果是这样,Outlook 将关闭,您可以触发事件。请记住,如果您有问题,Outlook 也可以无窗口启动(自动化等)。

关于c# - VSTO Outlook 集成 - 用于同步的 Outlook 关闭事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1438086/

相关文章:

javascript - 如何在 JQuery UI Draggable 元素的启动事件处理程序期间使 css 位置更改生效?

javascript - 以编程方式触发 Ctrl+S

c# - 返回相同字符串的随机字符串生成器

javascript - 在 ASP Net CORE MVC 元素中使用 Google Material UI

c# - C#数据结构按顺序添加元素

java - 带非void返回值的@EventListener注释方法不会触发新事件

c# 将进度条添加到文本框

初始化变量的 C# 命名约定 - 是否有特殊情况?

javascript - 如何从javascript json接收WebAPI中的字典

c# - DatagridTemplateColumn 中的动态