Есть ли способ установить программное обеспечение, которое запрашивает повышение привилегий (UAC) программно? - PullRequest
0 голосов
/ 26 января 2012

В основном мне нужно либо нажать кнопку UAC с моей программой (что я не считаю возможным), либо каким-либо образом сделать это, чтобы мне не нужно было нажимать кнопку для установки программного обеспечения.Мне также нужно будет нажимать кнопки во время установки с моей программой, но я знаю, как это сделать.Меня интересует только UAC.

Спасибо

Ответы [ 3 ]

4 голосов
/ 26 января 2012

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

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

Стандартный порядок действий - встраивать в ваше приложение манифест, указывающий, что вам требуются права администратора. Соответствующая строка выглядит следующим образом:

<requestedExecutionLevel level="requireAdministrator" />

В качестве альтернативы вы можете использовать функцию UAC «Обнаружение установщика» :

Первая технология совместимости приложений, которая является частью UAC, называется установщиком обнаружения. Поскольку большинство установщиков записывают двоичные файлы в каталог Program Files, они в подавляющем большинстве нуждаются в правах администратора. Обнаружение установщика предназначено для сканирования имени и ресурсов EXE-файла, чтобы определить, является ли приложение установщиком. Например, исполняемый файл будет помечен как установщик, если имя или описание исполняемого файла содержат строки «install» или «setup». Таким образом, приложение с именем setup.exe без манифеста приложения может запустить повышение прав UAC, если оно запущено токеном без прав администратора.

Нажатие кнопок во время установка тоже не очень хорошая идея. Если это программа установки, которую вы пишете, используйте некоторые флаги «автоматической установки», которые вы можете указать при запуске приложения программы установки. Если вы используете стороннюю программу установки, проверьте документацию; Скорее всего, такие флаги уже существуют. Смысл этих флагов в том, что интерактивный интерфейс вообще не отображается во время установки, а это означает, что никто не должен беспокоиться о нажатии каких-либо кнопок (что очень трудно сделать правильно).

3 голосов
/ 26 января 2012

вы можете установить вашу программу в домашний каталог пользователя или любые другие каталоги, которые доступны для записи без прав администратора.

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

0 голосов
/ 27 января 2012

Вы не можете нажать кнопку в диалоговом окне согласия UAC.

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

...