当Outlook完全加载时,我的Outlook插件(VSTO)如何检测?
感谢您的期待。当Outlook完全加载时,我的Outlook插件(VSTO)如何检测?
我正在开发一个Outlook插件,需要在加载Outlook时提示用户登录。我正在通过挂入ThisAddIn
的Startup
事件来完成此操作。
问题
不幸的是,在日志中对话框Outlook之前显示满载所以它仿佛Outlook未加载在用户看来,他们*登录该插件。
问题
是否有可以从只会火后 Outlook已完全加载并且正在向用户显示我的插件代码内订阅的事件吗?
相关链接
Ready event in Microsoft Outlook 2010?(通过IDTExtensibility2
关于使用StartupComplete
事件的答案看起来很有希望,但我不知道如何实现它。任何建议有赞赏也。)
我都试过了。 。 。
我曾尝试以下,但是这会导致对话框也很快推出:
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
//Fire 3rd party code to launch log-in dialog here
}
检查Application.Explorers.Count > 0
。如果是,继续。否则,订阅Explorers.NewExplorer
事件并在显示资源管理器时在该事件处理程序中运行代码。
谢谢德米特里,我试图订阅NewExplorer事件,但它似乎永远不会开火:'Globals.ThisAddIn.Application.Explorers.NewExplorer + = OnNewExplorer'。我是否正确地做了这件事?在此先感谢 –
触发事件的对象必须是活动的 - 您在由编译器创建的临时变量上设置事件处理程序。一旦它被GC发布,就不会引发任何事件。将Explorers声明为全局变量/类变量,并在该变量上设置事件处理程序。 –
对于引用的问题,请在该答案下添加注释,询问代码示例。 – Chris