NSIS, запустите одно действие от имени администратора - PullRequest
0 голосов
/ 29 июля 2011

У меня есть установка, которая требует только пользовательских привилегий, но эта установка должна удалить предыдущие файлы или вызвать деинсталлятор, если он существует

Есть ли в NSIS способ выполнить одно действие (DeleteFile, RunExe) от имени администратора?

1 Ответ

2 голосов
/ 29 июля 2011

Повышение происходит за процесс, и вы не сможете вернуться обратно после повышения.

Вам следует создать небольшое вспомогательное приложение nsis, которое выполняет ваши необходимые действия (одного администратора RequestExecutionLevel недостаточно, вам также необходимо использовать UserInfo :: GetAccountType ) Использовать ShellExecute с глагол runas для запуска повышенного процесса.

...