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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM