我有一个带有目录页面的简单 NSIS 脚本,用户可以在其中选择要安装应用程序的目录。请参阅下面的示例,如果应用程序已安装,它将从注册表或 www 根目录或“program files\publisher\product name”中获取值。
问题是,当我单击目录页面上的浏览并选择特定目录(例如:c:\test)时,当我关闭浏览对话框时,定义 PRODUCT_NAME 会自动添加到路径:c:\test\Invoice Management Workflow 。如何避免产品名称被自动添加”?
!define PRODUCT_NAME "Invoice Management Workflow"
!insertmacro MUI_DEFINES
!insertmacro MUI_PAGE_WELCOME
Page directory DirPre
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_INSTFILES
Function DirPre
; set the INSTDIR to
ReadRegStr $0 HKLM "Software\${PRODUCT_PUBLISHER}\${PRODUCT_NAME}" "InstallDirectory"
${If} $0 != ""
StrCpy $INSTDIR $0
Abort
${Else}
; get the install dir from reg
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\InetStp" "PathWWWRoot"
${If} $0 != ""
StrCpy $INSTDIR $0
${EndIf}
${EndIf}
FunctionEnd
这与InstallDir指令有关,引用手册:
请注意该字符串的部分
如果在最后一个 \ 之后将使用
用户选择“浏览”,并且可能是
附加回字符串中
安装时间(要禁用此功能,请结束
带有 \ 的目录(这将需要
要包含的整个参数
带引号)。
所以你可能想要Installdir "$programfiles\${PRODUCT_PUBLISHER}\${PRODUCT_NAME}\"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)