CreateProcess вместо ShellExecute при uiAccess=true
От: 3dlev  
Дата: 19.09.11 23:08
Оценка:
Нашей программе когда-то нужна была возможность запускать вторичный процесс elevated из основного процесса со стандартным IL. Было это осуществлено с помощью добавления uiAccess=true в манифест вторичного экзешника, а также подписания его бинарника, и вызова его с помощью ShellExecute. Все работает, но оказалось, что вызов ShellExecute загружает несколько Internet Explorer-овских DLL, таких как urlmon.dll, iertutil.dll итд. Это приводит к тому, что пока наша программа работает, апгрейд Интернет Эксплорера без перезагрузки системы невозможен.
Попробовал вызывать CreateProcess вместо ShellExecute — он возвращает ошибку ERROR_ELEVATION_REQUIRED.
Вопросы — можно ли обойтись без ShellExecute при запуске процесса с повышенными привилегиями?
Как альтернативное решение — можно ли выгрузить "лишние" библиотеки urlmon.dll, iertutil.dll каким либо относительно безопасным способом?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.