NSIS制作的安装包杀掉正在运行进程的方法

当我们在卸载程序或者更新安装程序时,我们需要先将运行的进程杀掉再进行安装或者卸载程序。NSIS本身并没有提供杀掉进程的脚本,但是有一个插件可以实现此功能,插件的名字叫KillProcDLL,插件下载地址为http://nsis.sourceforge.net/KillProcDLL_plug-in。插件的用法请参考插件页面所提供的内容。下面给出在安装包中的代码:

Function .onInit
 KillProcDLL::KillProc "myprogram.exe"
FunctionEnd


Function .onInstFailed
 ExecShell "open" "$INSTDIRmyprogram.exe"
FunctionEnd


Function un.onInit
 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to uninstall $(^Name) and its componments?" IDYES NoAbort IDYES +2
 Abort
 NoAbort:
 KillProcDLL::KillProc "myprogram.exe"
FunctionEnd

.onInit为安装程序启动时触发的事件,此处杀掉进程是防止更新安装时不能更新主程序的问题

.onInstFailed为安装失败时触发的事件,此处启动程序文件是为防止安装失败后本该运行着的程序因为前面被杀掉不能继续运行

un.onInit为初始化卸载过程时触发的事件,在此事件的对话框选Yes的时候,即确认要卸载的时候跳转到NoAbort并杀掉进程,选No的时候不做任何操作。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容