Как мне создать ярлык для CMD.EXE, который запрашивает повышение прав с помощью INNO Setup? - PullRequest
1 голос
/ 22 марта 2010

с использованием INNO Setup У меня в данный момент есть следующая запись в разделе [ICONS]:

Name: "{group}\My App\My App - Command Prompt"; Filename: "cmd.exe"; WorkingDir: "{app}"

Этот ярлык запускает командную строку прямо в папку моего приложения. К сожалению, он не запущен с повышенными правами, что означает, что команды, которые запускает пользователь, не имеют соответствующих прав.

Как использовать INNO Setup, как создать ярлык для CMD.exe (в определенной папке), требующий повышения прав?

Это можно сделать для других приложений через файл манифеста. У меня вопрос, как я могу использовать его, используя INNO, и если я не могу, каковы мои альтернативы?

1 Ответ

2 голосов
/ 25 марта 2010

Административное свойство ярлыка - это параметр совместимости, его нельзя устанавливать программно.Команды, которые запускает пользователь, должны сами запрашивать административные привилегии, имея соответствующий манифест.Пользователь также может выбрать повышение уровня прав, щелкнув правой кнопкой мыши по ярлыку и выбрав «Запуск от имени администратора».

Если вы все равно хотите немедленно повысить уровень, вы можете поместить небольшую утилиту в папку приложения, помеченную административным манифестом.,Все, что делает эта утилита - это spawn cmd.exe.Таким образом, вы можете избежать путаницы с настройками совместимости.

Если вы все еще хотите использовать настройки совместимости, посмотрите на HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers and HKCU \ Software \Разделы реестра Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers.Вы также можете использовать встроенную поддержку InU Setup в IUnknown, но это больше работы.См. Пример сценария CodeAutomation2.iss и http://social.msdn.microsoft.com/Forums/en-US/windowssecurity/thread/a55aa70e-ae4d-4bf6-b179-2e3df3668989

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...