Установщик NSIS просит изменить компьютер - PullRequest
1 голос
/ 04 декабря 2010

У меня есть программа, которая распаковывается в каталог TEMP, запускается сама, а затем удаляет себя из каталога TEMP.Когда запускается однофайловый исполняемый файл, сгенерированный мной с помощью NSIS, UAC спрашивает: «Вы хотите, чтобы следующая программа от неизвестного издателя изменила ваш компьютер?»

Чтобы уточнить: установщик распаковываетв каталог TEMP, и содержащаяся программа не вызывает UAC.Я думаю, что это связано с тем, что делает NSIS, но я не могу понять, что или как остановить это.Я удалил почти все строки моего скрипта NSIS, и он все еще злит UAC.

Если это имеет значение, я использую py2exe на python2.5 в Windows 7 с библиотеками pymunk и pygame.(Но, опять же, он запускает UAC только при запуске через NSIS.)

Как мне сделать так, чтобы он не запускал UAC, о котором идет речь?Нужен ли ключ подписи?

Ответы [ 2 ]

5 голосов
/ 04 декабря 2010

RequestExecutionLevel user

Это происходит из-за того, что NSIS (ошибочно) определяется Windows как установщик, требующий прав администратора.MS добавила это обнаружение, даже не спросив разработчиков NSIS!

Возможно, вы захотите использовать $ pluginsdir, он автоматически удаляется nsis:

Section
InitPluginsDir
SetOutPath $pluginsdir
File myapp.exe
ExecWait '"$pluginsdir\myapp.exe"'
SetOutPath $temp ;make sure pluginsdir is not locked
SectionEnd
0 голосов
/ 04 декабря 2010

Windows имеет эвристику "обнаружения установщика". Вы можете подавить их, добавив манифест, встроенный в исполняемый файл или расположенный рядом с ним, называемый what.exe.manifest, который говорит: «Мне не нужно повышать уровень». Как запретить Vista требовать повышения прав на patch.exe? - это первый из многих вопросов, которые я нашел, которые касаются этого.

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

...