Могут ли исполняемые файлы .NET работать даже в этом режиме?
.NET-приложения могут работать на любом уровне целостности UAC (включая системный и низкий).
Но у одного процесса есть только один уровень целостности (добавьте столбец целостности в Process Explorer , чтобы увидеть распределение процессов по уровням целостности).
Если вы попытаетесь запустить второй экземпляр Outlook, он просто отобразит существующий экземпляр, он активно предотвращает запуск двух экземпляров. Word и Excel нет.
Вместе они объясняют, что вы видите. При создании экземпляра объекта приложения Word или Excel запускается новый процесс Work или Excel с соответствующим уровнем целостности. Если вы сделаете это с Outlook, и Outlook уже запущен, он попытается подключиться к этому существующему процессу. Но это не удастся, если Outlook уже не работает с высокой целостностью. Вы должны иметь возможность проверить это, запустив Outlook от имени администратора (то есть с высокой степенью целостности), а затем запустив свое приложение для подключения к нему.
Требовать, чтобы пользователи запускали Outlook от имени администратора, - плохая идея (из-за рисков, связанных с вложениями в электронную почту от неизвестных сторон, запуск Outlook с высокой степенью целостности просто вызывает заражение вредоносным ПО).
Лучший подход (и именно так это делают в Explorer и т. Д.) - это разделить ваш процесс на две части, используя COM-моникеры, чтобы поднять только те части вашего приложения, которые действительно требуют повышения прав. Посмотрите этот вопрос о том, как это сделать: Как UAC повысить компонент COM с помощью .NET