gpt4 book ai didi

path - 如何获取nsis脚本中的exe路径?

转载 作者:行者123 更新时间:2023-12-04 17:07:35 28 4
gpt4 key购买 nike

我正在为我的应用程序编写一个卸载程序,我需要检查从哪个目录调用卸载程序(因为我想限制从任何其他目录进行卸载)。

我正在使用内置变量 $EXEPATH 但它给我的是 C:\Users\MyUser\Local\Temp\~nsu.tmp 而不是当前目录.

我还通过 nsis 使用了 Windows API GetModuleFileName,但它也给出了相同的输出。如何获取可执行文件的当前目录?

最佳答案

C:\Users\MyUser\Local\Temp\~nsu.tmp 形式的临时目录很可能是卸载程序实际运行的目录。

为避免无法删除卸载程序可执行文件的问题,因为它在运行时被锁定(因此需要重新启动才能真正删除),通常将卸载程序 .exe 复制到一个临时位置并从那里运行它。

如果您不希望卸载程序将自己 fork 到一个临时目录中,您可以这样调用它:

ExecWait '"$INSTDIR\uninstaller.exe" /S _?=$INSTDIR'

这个技巧涉及在 manual 中描述的 _? 特殊参数.

关于path - 如何获取nsis脚本中的exe路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30730442/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com