因工作需要要自定义NSIS的安装页面,其中用到一个功能。
修改的是这个项目:https://github.com/nicecai/nsissource http://hamletsoft.com/
在安装完成后需要关闭安装程序,博主用的是FindProc && KillProc实现的
代码如下 https://github.com/nicecai/nsissource/blob/master/5/5.nsi#L305
FindProcDLL::FindProc "test.exe"
Sleep 500
Pop $R0
${If} $R0 != 0
KillProcDLL::KillProc "test.exe"
${EndIf}
博主的方法有一个问题就是当安装前把安装程序的名字给修改了,FindProc就没办法查找到安装程序的进程。
经过尝试,找到一个方法,思路就是查找自身的进程ID,然后通过pid杀掉进程,但是FindProc和KillProc都是查找进程名字来实现的,所以这个方法不能直接拿来修改一下使用,下面是我的实现方法。
;获得当前安装程序进程PID
System::Call 'kernel32::GetCurrentProcessId()i .R0'
;MessageBox MB_OK '安装程序进程PID:$R0'
ExecCmd::exec '"taskkill" /F /T /PID $R0'
我写这篇文章只是备份用的