2016-09-21 5 views
1

Спасибо, что посмотрели.Как мой Outlook Plugin (VSTO) обнаруживает, когда Outlook полностью загружен?

Я разрабатываю плагин Outlook, который должен запрашивать у пользователя вход в систему после загрузки Outlook. В настоящее время я выполняю это, подключившись к событию StartupThisAddIn.

Проблема

К сожалению, журнал в диалоговом окне отображает до того Outlook, полностью загружен, так что, как представляется пользователю, как если прогноз не загружается, и они вынуждены войти в систему для плагина.

Вопрос

Есть ли событие, которое может быть подписан из моей плагин код, который будет стрелять только после того, как Outlook, будет полностью загружен и быть показан пользователю?

Ссылки по теме

Ready event in Microsoft Outlook 2010? (Ответ относительно использования StartupComplete события через IDTExtensibility2 выглядит многообещающим, но я не уверен, как это осуществить. Любые советы там ценятся как хорошо.)

Я попробовал. , ,

Я попытался следующие, но это вызывает диалоговое окно для запуска слишком рано:

если Application.Explorers.Count > 0
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 
     } 
+0

Для ответа на указанный вопрос добавьте комментарий под этим ответом, в котором запрашивается образец кода. – Chris

ответ

1

Проверить. Если да, продолжайте. В противном случае подпишитесь на событие Explorers.NewExplorer и запустите свой код в этом обработчике событий, когда отображается проводник.

+0

Спасибо, Дмитрий, я попытался подписаться на событие NewExplorer, но, похоже, он никогда не срабатывает: «Globals.ThisAddIn.Application.Explorers.NewExplorer + = OnNewExplorer'. Я сделал это правильно? Заранее спасибо –

+0

Объект, который запускает события, должен быть живым - вы настраиваете обработчик событий на временную переменную, созданную компилятором. Как только он будет выпущен GC, события не будут подняты. Объявите Explorers как глобальную переменную/class и настройте обработчик событий на эту переменную. –

Смежные вопросы