赞
踩
- !include "LogicLib.nsh"
-
- # ...
-
- # MessageBox MB_OK "$INSTDIR"
- LogSet on
-
- #...
注意, 使用LogSet on 时候,"$INSTDIR" 必须不为空,否则不会生成install.log
最后在安装目录下生成 install.log
在.onInit中,添加下面代码
- Function .onInit
-
- # 禁止多个安装程序实例
- System::Call 'kernel32::CreateMutexA(i 0, i 0, t "zhkt_install") i .r1 ?e'
- Pop $R0
- StrCmp $R0 0 +3
- MessageBox MB_OK|MB_ICONEXCLAMATION "安装程序已经在运行。"
- Abort
-
- FunctionEnd
在NSIS 脚本OnStartExtractFiles 函数中创建快捷不成功,请在.onInstSuccess 创建快捷方式。可能是因为 OnStartExtractFiles 是绑定的后台运行的回调函数。
以下错误代码示例
-
- !macro InstallExeDepand RegKey SubRegKey DepandExeName Arg
-
- File /oname=$PLUGINSDIR\${DepandExeName} ".\depands\${DepandExeName}"
-
- Push $R0
- ClearErrors
- ;这里检测 该版本的运行时版本号是否存在
- ReadRegStr $R0 HKLM "${RegKey}" "${SubRegKey}"
- ;
- IfErrors 0 +2
- ; Exec "$PLUGINSDIR\${VcRedistName} /q" ;若不存在,执行静默安装
- ExecWait "$PLUGINSDIR\${DepandExeName} ${Arg}" ; 调试安装
-
- StrCpy $R0 "-1"
- ;MessageBox MB_OK "安装完毕"
-
- pop $R0
-
- !macroend
-
- # 宏内插入宏 是不支持的 下面代码是错误的
- !macro InstallVcRedist GUID VcRedistName Arg
-
- !insertmacro InstallExeDepand "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${GUID} "BundleVersion" ${VcRedistName} ${Arg}
-
- !macroend

注意上面为错误的代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。