NSIS 检测 运行 后台进程
NSIS Detect running background process
我需要能够在我的 NSIS 安装程序执行时寻找后台的另一个 运行 进程。在新安装程序完成之前,必须终止并卸载此其他进程。
我试过使用 FindProc 插件查找进程,也尝试使用 KillProc 插件终止进程。这些插件中的每一个 returns 结果都没有。
FindProcDLL::FindProc "MyApplication.exe"
KillProcDLL::KillProc "MyApplication.exe"
我也试过nsProcess插件,还是不行
nsProcess::_KillProcess "MyApplication.exe" $R0
似乎人们使用这些插件取得了成功,但我不知道为什么它在我的场景中不起作用,除非它与后台进程有关。
如有任何帮助,我们将不胜感激。
None 我试过的 NSIS 插件有效。他们都会 return 没有结果(甚至不是 0 或负数)。我最终只使用了以下命令,并且没有任何问题。它会短暂地弹出一个命令window,但在我的场景中我可以接受:
ExecWait "TaskKill /IM MyApplication.exe /F"
希望这对其他人有帮助。
不知道您使用的是哪个 NSIS 版本,也不知道您是否正在编译 Unicode 或 ANSI 安装程序,很难确切地说出发生了什么。
原版from the wiki只支持32位进程,hnedka版本应该也支持64位进程。
如果您使用的是 hnedka 版本和 NSIS v2.x,那么您需要将插件从 ANSI 文件夹中提取到 \NSIS\Plugins。如果您使用的是 NSIS v3,那么您需要从 ANSI 文件夹中提取到 \NSIS\Plugins\x86-ansi,从 Unicode 文件夹中提取到 \NSIS\Plugins\x86-unicode.
我可以确认 hnedka 版本适用于 NSIS v3。如果 $R0 为空,则可能是您将错误的插件 .dll 提取到了错误的文件夹中。
显然,您正在尝试查找并终止不受支持的 x64 进程。你应该看看这个 link
http://nsis.sourceforge.net/Processes_plug-in
我需要能够在我的 NSIS 安装程序执行时寻找后台的另一个 运行 进程。在新安装程序完成之前,必须终止并卸载此其他进程。
我试过使用 FindProc 插件查找进程,也尝试使用 KillProc 插件终止进程。这些插件中的每一个 returns 结果都没有。
FindProcDLL::FindProc "MyApplication.exe"
KillProcDLL::KillProc "MyApplication.exe"
我也试过nsProcess插件,还是不行
nsProcess::_KillProcess "MyApplication.exe" $R0
似乎人们使用这些插件取得了成功,但我不知道为什么它在我的场景中不起作用,除非它与后台进程有关。
如有任何帮助,我们将不胜感激。
None 我试过的 NSIS 插件有效。他们都会 return 没有结果(甚至不是 0 或负数)。我最终只使用了以下命令,并且没有任何问题。它会短暂地弹出一个命令window,但在我的场景中我可以接受:
ExecWait "TaskKill /IM MyApplication.exe /F"
希望这对其他人有帮助。
不知道您使用的是哪个 NSIS 版本,也不知道您是否正在编译 Unicode 或 ANSI 安装程序,很难确切地说出发生了什么。
原版from the wiki只支持32位进程,hnedka版本应该也支持64位进程。
如果您使用的是 hnedka 版本和 NSIS v2.x,那么您需要将插件从 ANSI 文件夹中提取到 \NSIS\Plugins。如果您使用的是 NSIS v3,那么您需要从 ANSI 文件夹中提取到 \NSIS\Plugins\x86-ansi,从 Unicode 文件夹中提取到 \NSIS\Plugins\x86-unicode.
我可以确认 hnedka 版本适用于 NSIS v3。如果 $R0 为空,则可能是您将错误的插件 .dll 提取到了错误的文件夹中。
显然,您正在尝试查找并终止不受支持的 x64 进程。你应该看看这个 link http://nsis.sourceforge.net/Processes_plug-in