Я пишу программу, которая используется для упрощения загрузки установщика приложения.Приложение действительно простое в работе: оно просто просит подсистему BITS загрузить ZIP-файл из сети, распаковать его на рабочий стол пользователя и запустить установщик второго уровня (идея заключается в том, что многие из наших конечных пользователей слишком глупы, чтобыдоверенный со ссылкой для скачивания в формате ZIP и инструкциями по установке программы).
Теперь, если пользователь запускает IE 7+ в Vista / 7, активирует UAC и выбирает «выполнить» вместо «сохранить как», то программа не работает.На самом деле, все попытки записи в файловую систему или реестр заканчиваются неудачей из-за защищенного режима IE.
Чтобы обойти это, я пометил исполняемый файл, чтобы вызвать приглашение UAC, которое работает нормально.Однако теперь он будет вызывать приглашение, даже если этот запуск не нужен: программа предназначена для загрузки в фоновом режиме и возобновления загрузки, если пользователь закрывает свой сеанс до того, как это будет сделано.Теперь приглашение UAC запускается каждый раз при запуске исполняемого файла.
Я хотел бы обнаружить тот факт, что я работаю в песочнице, и, в этом случае, перезапустить процесс, на этот раз с UACбыстро (достаточно легко сделать).Я не знаю, как я могу обнаружить эту ситуацию, за исключением попыток записи в реестр.
Есть идеи?