最新消息:

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

nsis 永恒心锁 1627浏览 0评论

当我们在卸载程序或者更新安装程序时,我们需要先将运行的进程杀掉再进行安装或者卸载程序。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的时候不做任何操作。

永恒心锁,版权所有丨如未注明,均为转载丨本网站采用BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » NSIS制作的安装包杀掉正在运行进程的方法

您必须 登录 才能发表评论!