在.onInit里面添加如下代码:
# 禁止多个安装程序实例 Begin
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "mysetup") 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
SetErrorLevel 4
Quit
# 禁止多个安装程序实例 End
L_Run :