完整写法
nsis配置
guid为 必须配置项 ,或者不配置 ,默认为 appId
以下的 xxx 则为guid 名称
!macro customInit
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\xxx"
!macroend
; xxx 为应用名称
/**
* 设置默认安装路径在D:\Program Files\APP
* xxx 对应 nsis的 guid
*/
!macro preInit
ReadRegStr $0 HKCU "Software\xxx " "InstallLocation"
StrCmp $0 "" checkHKCU checkHKLM
checkHKLM:
; 从 HKLM 中获取安装路径
StrCpy $INSTDIR $0
; MessageBox MB_ICONINFORMATION|MB_OK "安装路径为1 $0"
Goto done
checkHKCU:
ReadRegStr $1 HKLM "SOFTWARE\xxx " "InstallLocation"
; MessageBox MB_ICONINFORMATION|MB_OK "安装路径为2 $1"
StrCmp $1 "" useDefault useHKCU
useHKCU:
; 从 HKCU 中获取安装路径
StrCpy $INSTDIR $1
Goto done
useDefault:
; 没有在注册表中找到对应键值,使用默认安装路径
StrCpy $INSTDIR "D:\Program Files\APP"
done:
; MessageBox MB_ICONINFORMATION|MB_OK "安装路径为:$INSTDIR"
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
WriteRegExpandStr HkCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
!macroend