我有一个程序解压缩到TEMP目录,运行自己,然后从TEMP目录中删除自己.当我使用NSIS生成的单文件可执行文件尝试运行时,UAC会询问:"您是否希望允许来自未知发布者的以下程序修改您的计算机?"
澄清一下:安装程序仅解压缩到TEMP目录,并且包含的程序不会触发UAC.我认为它与NSIS的作用有关,但我无法弄清楚是什么或如何阻止它.我已经删除了我的NSIS脚本的几乎所有行,它仍然激怒了UAC.
如果重要的话,我在Windows 7上的python2.5上使用py2x和pymunk和pygame库.(但同样,它只会在通过NSIS时触发UAC.)
如何让它不会触发UAC的任何内容?我需要签名密钥吗?
发生这种情况是因为Windows错误地将NSIS检测为需要管理员权限的安装程序.MS在没有询问NSIS开发人员的情况下添加了这种检测!
你可能想使用$ pluginsdir,它被nsis自动删除:
Section
InitPluginsDir
SetOutPath $pluginsdir
File myapp.exe
ExecWait '"$pluginsdir\myapp.exe"'
SetOutPath $temp ;make sure pluginsdir is not locked
SectionEnd
Run Code Online (Sandbox Code Playgroud)