在nsis FUnction un.oninit 中使用nsprocess::FIndProcess遍历 查询多个程序TM3C.exe和TM3CCAM.exe是否正在运行,若其中程序有一个或多个正在运行则MessageBox输出程序正在运行是否强行关闭并继续卸载,确认后使用nsProcess::KillProcess关闭正在运行的一个或多个程序
时间: 2023-11-22 18:53:10 浏览: 321
检查进程并关闭
好的,你需要先在nsis脚本中引入nsProcess插件,然后在un.onInit函数中使用nsProcess::FindProcess函数查询是否有正在运行的程序,代码如下:
```
!include "nsProcess.nsh"
Function un.onInit
;查询是否有TM3C.exe和TM3CCAM.exe正在运行
nsProcess::FindProcess "TM3C.exe TM3CCAM.exe" $R0
${If} $R0 != 0
MessageBox MB_OKCANCEL "程序正在运行,是否强行关闭并继续卸载?"
${If} $R0 == IDOK
;关闭正在运行的程序
nsProcess::KillProcess "TM3C.exe TM3CCAM.exe"
${Else}
;取消卸载
Abort
${EndIf}
${EndIf}
FunctionEnd
```
这段代码首先使用nsProcess::FindProcess函数查询是否有TM3C.exe和TM3CCAM.exe正在运行,若有则将返回值存入变量$R0中。然后判断$R0是否为0,若不为0则说明有程序正在运行,此时弹出MessageBox询问用户是否强行关闭并继续卸载。如果用户点击了“确定”按钮,则使用nsProcess::KillProcess函数关闭正在运行的程序;如果用户点击了“取消”按钮,则取消卸载。
阅读全文