QProcess :: startDetached заблокирован UAC (запущено средство обновления)

У меня есть функция обновления в моем приложении - она ​​загружает и проверяет установщик (setup.exe, созданный с помощью NSIS) . Чтобы начать обновление, я просто сделал:

QString path = .. absolute path to the downloaded file ...
QProcess::startDetached(path, QStringList());

Это отлично работает в XP, но в Vista и Win7 ничего не происходит после завершения загрузки. Если я перейду к загруженному обновлению и запустил его вручную, все будет нормально. Я предполагаю, что происходит то, что UAC блокирует установщик во время CreateProcess, но здесь мои знания заканчиваются.

Дополнительная сложность - когда я запускаю отладочную сборку из командной строки, описанные выше шаги работают - я получаю приглашение UAC и могу запустить установщик. Проблема заключается в сборках выпуска, запущенных из меню / ярлыка «Пуск» - я предполагаю, что при запуске из командной оболочки существует разница в токене аутентификации.

6
задан James Turner 24 December 2010 в 14:16
поделиться