【问题标题】:NSIS - check if process exists (nsProcess not working)NSIS - 检查进程是否存在(nsProcess 不工作)
【发布时间】:2016-04-13 05:55:48
【问题描述】:

对于我的 NSIS 卸载程序,我想检查一个进程是否正在运行。 FindProcDLL 在 Windows 7 x64 下无法运行,所以我尝试了 nsProcess。

我已经从网站下载了 1.6 版本:http://nsis.sourceforge.net/NsProcess_plugin

如果我在示例文件夹中启动 nsProcessTest.nsi,我会收到以下错误:

Section: "Find process" ->(FindProcess)
!insertmacro: nsProcess::FindProcess
Invalid command: nsProcess::_FindProcess
Error in macro nsProcess::FindProcess on macroline 1
Error in script "C:\Users\Sebastian\Desktop\nsProcess_1_6\Example\nsProcessTest.nsi" on line 14 -- aborting creation process

这是示例脚本的第 14 行:

${nsProcess::FindProcess} "Calc.exe" $R0

有人知道怎么回事吗?如何检查进程是否正在使用 NSIS 运行?

【问题讨论】:

  • 对于编译错误,您是否将 nsProcess.nsh 放在 NSIS 安装文件夹的包含目录中? nsProcess.dll 文件一样吗?我在 Win7 x64 下使用 nsProcess FindProcess 和 KIllProcess 没有任何问题。

标签: process nsis


【解决方案1】:

NSIS 未找到该插件,因此请确保将其文件复制到正确的文件夹中。

NSIS 2.x:

NSIS/
├── Include/
│   └── nsProcess.nsh
└── Plugins/
    └── nsProcess.dll

NSIS 3.x:

NSIS/
├── Include/
│   └── nsProcess.nsh
└── Plugins/
    ├── x86-ansi/
    │   └── nsProcess.dll
    └── x86-unicode/
        └── nsProcess.dll

Plugins\x86-unicode里面的文件是nsProcessW.dll改名为nsProcess.dll(怪作者写的太复杂了!)

更一般地,请参阅 NSIS Wiki 上的 How can I install a plugin?

【讨论】:

  • 不应该是Include,而不是Includes吗?
  • @ivokosir 谢谢,修正了我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-22
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多