Так или иначе, пользователю придется нажать на эту кнопку, чтобы дать вам разрешение продолжить. В этом весь смысл UAC: если бы был способ обойти это, он бы не служил абсолютно никакой цели.
Вы можете запросить разрешение раньше (в начале вашей установки) или позже (в тот момент, когда права фактически требуются впервые), но вы должны сделать это один из тех случаев.
Стандартный порядок действий - встраивать в ваше приложение манифест, указывающий, что вам требуются права администратора. Соответствующая строка выглядит следующим образом:
<requestedExecutionLevel level="requireAdministrator" />
В качестве альтернативы вы можете использовать функцию UAC «Обнаружение установщика» :
Первая технология совместимости приложений, которая является частью UAC, называется установщиком обнаружения. Поскольку большинство установщиков записывают двоичные файлы в каталог Program Files, они в подавляющем большинстве нуждаются в правах администратора. Обнаружение установщика предназначено для сканирования имени и ресурсов EXE-файла, чтобы определить, является ли приложение установщиком. Например, исполняемый файл будет помечен как установщик, если имя или описание исполняемого файла содержат строки «install» или «setup». Таким образом, приложение с именем setup.exe без манифеста приложения может запустить повышение прав UAC, если оно запущено токеном без прав администратора.
Нажатие кнопок во время установка тоже не очень хорошая идея. Если это программа установки, которую вы пишете, используйте некоторые флаги «автоматической установки», которые вы можете указать при запуске приложения программы установки. Если вы используете стороннюю программу установки, проверьте документацию; Скорее всего, такие флаги уже существуют. Смысл этих флагов в том, что интерактивный интерфейс вообще не отображается во время установки, а это означает, что никто не должен беспокоиться о нажатии каких-либо кнопок (что очень трудно сделать правильно).