【NSIS】安装或卸载时使用nsProcess检查程序是否正在运行
NSIS版本:3.0.6
NsProcess版本:1.6
例子:检查Excel程序是否在运行
1、下载NsProcess
下载NsProcess,将nsProcess.dll、nsProcessW.dll拷贝到NSIS的插件路径C:\Program Files (x86)\NSIS\Plugins\x86-ansi。
2、编写检查脚本
在安装脚本中编写Macro,在检测到进程存在后弹出提示,并退出安装或卸载。
!macro FindProcess StrCpy $1 "excel.exe" nsProcess::_FindProcess "$1" Pop $R0 ${If} $R0 = 0 MessageBox MB_OK|MB_ICONSTOP "程序检测到 Excel 正在运行,请关闭Excel重新开始!" IDOK Abort ${EndIf} !macroend
3、在Function .onInit和un.onInit中分别调用
Function .onInit !insertmacro FindProcess FunctionEnd Function un.onInit !insertmacro FindProcess MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,其及所有的组件?" IDYES +2 FunctionEnd
4、在安装或者卸载程序启动时先检测进程是否存在,如果存在提示并退出执行
参考:
Function Call in .onInit and un.oninit - NSIS Forums (nsis-dev.github.io)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2019-03-19 ArcGIS Classic COM Add-Ins插件dll的安装与卸载