NSIS 单实例运行安装包

Function .onInit
	;uac提权
	!insertmacro UAC_RunElevated

	# 禁止多个安装程序实例 Begin
	System::Call 'kernel32::CreateMutexA(i 0, i 0, t "Raysync Client") i .r1 ?e'  #注意最后的?e
	Pop $R0 #保存LastError返回值
	;System::Call 'kernel32::CloseHandle(i r1) i.s'  #此处不能关闭句柄,否则可以同时运行多个安装程序,注意r1 != R1,区分大小写
	StrCmp $R0 0 L_Run
	;MessageBox MB_ICONEXCLAMATION|MB_TOPMOST  "发现安装程序正在运行" /SD IDOK
	Quit 
	# 禁止多个安装程序实例 End

L_Run:
	...
	
FunctionEnd