【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) 

NsProcess plugin - NSIS (sourceforge.io)

posted @   yzhyingcool  阅读(2688)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2019-03-19 ArcGIS Classic COM Add-Ins插件dll的安装与卸载
点击右上角即可分享
微信分享提示