当选择的安装路径变更时,路径为空或包含空格,都不允许继续。路径为空时,NSIS 会自行判断。此示例未判断是否包含双字节字符。如有需要,请与 NSIS检测安装路径是否包含中文 配合使用。
Name "Path"
OutFile "Path.exe"
InstallDir "$PROGRAMFILES\Internet Explorer"
ShowInstDetails show
InstallColors /windows
XPStyle on
Page directory
Page instfiles
Section "Install"
SectionEnd
#
# 当选择的安装路径变更时,路径为空或包含空格,都不允许继续。
# 路径为空时,NSIS 会自行判断。
#
# 此示例未判断是否包含双字节字符。如有需要,请与示例二配合使用。
#
Function .onVerifyInstDir
#
# 检查安装路径是否包含空格,ANSI/Unicode 版本通用。
#
# 用 StrChr 在路径中查找空格字符
# td 表示从 $INSTDIR 读取字符串 (详见 Docs\System\System.html)。
# i0x20 中的 0x20 表示空格字符 ASCII 码。
System::Call "shlwapi::StrChr(td,i0x20)p.R0"
# 结果为 0 表示 $INSTDIR 中没找到空格字符。
# 如果用 NSIS 3.x 这里可以用 IntPtrCmp 代替。
IntCmp $R0 0 lbl_done
Abort
lbl_done:
FunctionEnd
评论 (0)