NSIS 自定义页面制作关闭功能

因工作需要要自定义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'

我写这篇文章只是备份用的

原文地址:https://www.cnblogs.com/grj1046/p/4045926.html