Итак, вы хотите запустить установку, требующую прав администратора без прав администратора ? Потому что, вы знаете, с включенным UAC, запуск приложения с правами администратора требует диалога по определению. В этом весь смысл.
Даже не пытайся. Посмотрите на Firefox, достойное приложение с автоматическим обновлением. Вы должны будете подтвердить диалог согласия для каждого обновления, и это нормально. Потому что, если пользователь этого не хочет, он может отключить UAC. Но это его проблема, а не ваша. Вы не должны отключать UAC из / для вашей программы. Это как гость, которому нужно открыть все двери, чтобы войти, когда можно просто позвонить в звонок у входной двери .
Вставить манифест в программу обновления, которая указывает requireAdministrator
. Откроется диалоговое окно согласия, если для пользователя включен UAC, и будет работать без сбоев, если для пользователя отключен UAC.
Относительно решения Reed Copsey 1: Если ваш апдейтер является службой, людям это может не понравиться. Допустим, если вы не пользуетесь доверием, скажем, антивирусной компании, это может серьезно повредить вашей репутации.