Закройте другое приложение взаимодействия при закрытии Outlook VSTO - PullRequest
1 голос
/ 26 апреля 2019

Я работаю над плагином Outlook, который читает тело письма и сохраняет его в формате PDF.

Поскольку Outlook не позволяет напрямую сохранять в формате PDF, я сохраняю в формате Word и использую Word с взаимодействием для преобразования его в формат PDF.

Я открываю Word с этими строками

 var WordInstance = new Word.Application();
 WordInstance.Visible = false;
 WordInstance.ScreenUpdating = false;
 WordInstance.NormalTemplate.Saved = true;

Сразу после преобразования я закрываю Word, используя эти строки

WordInstance.Quit(ref oMissing, ref oMissing, ref oMissing);
Marshal.ReleaseComObject(instance);

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

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

Есть ли способ закрыть экземпляры дочерних приложений взаимодействия при закрытии хост-приложения VSTO? Или в любом случае, чтобы обнаружить и выйти слово до закрытия Outlook? Или просто запретить повторное открытие Word при перезагрузке Windows?

1 Ответ

0 голосов
/ 27 апреля 2019

Использовать Application.Quit событие. Вы также можете использовать события Explorer.Close и Inspector.Close - когда все окна Outlook закрыты (т.е. Application.Inspectors.Count == 0 a nd Application.Explorers.Count == 0), Outlook закрывается.

...