NSIS安装过程中判断程序是否运行中,FindProcDLL和KillProcDLL
2017-02-07 10:15
1171 查看
FindProcDLL::FindProc {process_name} 返回值: 0 - 未找到 1 - 找到
KillProcDLL::KillProc {process_name} 0 - 杀进程成功 603 - 未找到此进程(也有可能是无法访问进程,如因用户权限问题等) 其它 - 各种错误
所以,在杀进程时,如果返回603,最后再findproc一下,确认是否进程不存在。 一般示例代码:
KillProcDLL::KillProc {process_name} 0 - 杀进程成功 603 - 未找到此进程(也有可能是无法访问进程,如因用户权限问题等) 其它 - 各种错误
所以,在杀进程时,如果返回603,最后再findproc一下,确认是否进程不存在。 一般示例代码:
!macro DefFunc_ForceKillProcess un Function ${un}ForceKillProcess Pop $0 ; module name Pop $1 ; exe name try_kill_one: KillProcDLL::KillProc "$1" Pop $R0 IntCmp $R0 0 try_kill_one ; 返回0表示杀进程成功,则应继续杀此进程名的其它进程 IntCmp $R0 603 check_no_more ; 返回603表示没找到此进程,有两种情况:a) 确实没有此进程 b) 因权限等原因无法访问此进程,如果第2种,应认为杀进程失败,所以需要进一步检查 fail_to_kill: ; KillProc返回值非0非603,或返回603但实际上此进程仍存在,均表示杀进程失败 MessageBox MB_ICONSTOP "无法终止 $0 ($1),请手动终止此程序后重试" Quit check_no_more: FindProcDLL::FindProc "$1" Pop $R0 IntCmp $R0 1 fail_to_kill ; 如果FindProc结果为1,表示找到了程序,说明杀进程失败,否则继续 no_more: FunctionEnd !macroend
相关文章推荐
- Installshield 在安装或者卸载过程中,判断某一程序是否正在运行
- NSIS:判断程序是否运行并进行卸载
- Inno Setup安装、卸载时判断是否程序正在运行
- Inno 4000 Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- NSIS——安装、卸载时检查程序是否正在运行
- 安装前判断进程中是否有程序在运行
- Inno Setup安装、卸载时判断是否程序正在运行
- NSIS打包,判断当前程序是否在运行
- [转]NSIS:安装、卸载时检查程序是否正在运行
- Inno Setup安装、卸载时判断是否程序正在运行
- 安装、卸载时判断程序是否在运行
- NSIS安装程序制作工具判断系统是否安装.NET
- Inno 4000 Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- NSIS 卸载、安装检测程序是否在运行
- Inno Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- Inno Setup安装、卸载时判断是否程序正在运行
- Inno Setup安装、卸载时判断是否程序正在运行
- Inno Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- NSIS 卸载时判断程序是否运行
- NSIS:安装、卸载时检查程序是否正在运行