Я пытаюсь написать программу на C#, которая либо запустит новый экземпляр Outlook, если ни один из них не запущен, или прикрепится к первому экземпляру, если он уже запущен.Как начать или подключиться к Outlook с помощью Interop C#?
Я нашел предыдущее обсуждение already, которое в значительной степени определяет то, что я пытаюсь достичь. Проблема с Microsoft Solution заключается в том, что некоторые из моих плагинов/надстроек Outlook не работают должным образом, например, iManage Filesite/Worksite. Плагин, кажется, находится на ленте при запуске Outlook, но некоторые функции отсутствуют, и если я пытаюсь выполнить поиск и т. Д. Outlook перестает отвечать на запросы и падает. Плагины работают должным образом, если внешний вид запускается из консоли или как:
System.Diagnostics.Process.Start(@"OUTLOOK.exe");
Но тогда я не могу подключиться к работающему экземпляру Outlook, потому что
application = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
Сбой с COM-ошибки (0x800401E3 MK_E_UNAVAILABLE). Я могу обойти эту ошибку только в том случае, если я отлажу приложение и пройду через него. Я попытался разрешить время для запуска Outlook, переключая активное окно (изменение фокуса), но ни один из этих параметров не работает.
Удалите свои счета из Outlook. Очистите PST-файлы Outlook. Откройте Outlook в безопасном режиме. Добавьте свою учетную запись и дождитесь обновления всех папок. Закрыть и открыть Outlook. Повторите попытку повторить то же самое в вопросе. – Gokul