Хорошо, поэтому, когда приложение Office открывается через объектную модель Office, в командной строке используется переключатель /automation
(например, Winword.exe /automation
).
Так что я просто проверяю это впри запуске моего надстройки и установке глобального логического значения:
If (Environment.CommandLine.IndexOf("/automation", StringComparison.OrdinalIgnoreCase) >= 0) Then mbOpenedByAutomation = True
Я должен провести некоторое тестирование, чтобы убедиться, что нет других ситуаций, которые могут использовать этот переключатель, но я думаю, что это будеттрюк.