使用nsis 在Function un.onInit过程遍历判断多个程序是否正在运行,如果在运行,则弹出”XX程序正在运行,关闭后再卸载“
时间: 2023-12-10 22:39:41 浏览: 207
判断某程序是否正在运行,如果正在运行则锁定计算机
4星 · 用户满意度95%
可以在 Function un.onInit 过程中使用 nsProcess 插件来判断多个程序是否正在运行,如果在运行,则弹出提示框。
首先需要引入 nsProcess 插件,可以在 nsis 官网的插件页面下载。
然后在 Function un.onInit 中使用以下代码:
```
!include "nsProcess.nsh"
Function un.onInit
; 判断程序1是否正在运行
nsProcess::EnumProcesses "program1.exe"
Pop $0
StrCmp $0 "ERROR" program1_not_running program1_running
program1_running:
MessageBox MB_OK "程序1正在运行,关闭后再卸载。"
Quit
program1_not_running:
; 判断程序2是否正在运行
nsProcess::EnumProcesses "program2.exe"
Pop $0
StrCmp $0 "ERROR" program2_not_running program2_running
program2_running:
MessageBox MB_OK "程序2正在运行,关闭后再卸载。"
Quit
program2_not_running:
; 其他判断程序的代码
FunctionEnd
```
以上代码中,我们使用了 nsProcess::EnumProcesses 函数来枚举进程列表,并且通过比对进程名的方式来判断程序是否正在运行。
如果程序正在运行,则弹出提示框,并且通过 Quit 命令来终止安装过程,以防止误操作。
阅读全文