Обнаружение запуска процесса IE в защищенном режиме - PullRequest
1 голос
/ 18 августа 2010

Я пишу программу, которая используется для упрощения загрузки установщика приложения.Приложение действительно простое в работе: оно просто просит подсистему BITS загрузить ZIP-файл из сети, распаковать его на рабочий стол пользователя и запустить установщик второго уровня (идея заключается в том, что многие из наших конечных пользователей слишком глупы, чтобыдоверенный со ссылкой для скачивания в формате ZIP и инструкциями по установке программы).

Теперь, если пользователь запускает IE 7+ в Vista / 7, активирует UAC и выбирает «выполнить» вместо «сохранить как», то программа не работает.На самом деле, все попытки записи в файловую систему или реестр заканчиваются неудачей из-за защищенного режима IE.

Чтобы обойти это, я пометил исполняемый файл, чтобы вызвать приглашение UAC, которое работает нормально.Однако теперь он будет вызывать приглашение, даже если этот запуск не нужен: программа предназначена для загрузки в фоновом режиме и возобновления загрузки, если пользователь закрывает свой сеанс до того, как это будет сделано.Теперь приглашение UAC запускается каждый раз при запуске исполняемого файла.

Я хотел бы обнаружить тот факт, что я работаю в песочнице, и, в этом случае, перезапустить процесс, на этот раз с UACбыстро (достаточно легко сделать).Я не знаю, как я могу обнаружить эту ситуацию, за исключением попыток записи в реестр.

Есть идеи?

1 Ответ

1 голос
/ 18 августа 2010

Вызвать функцию IEIsProtectedModeProcess .

Хорошим документом, охватывающим защищенный режим IE, является Общие сведения и работа в защищенном режиме Internet Explorer .

...