如何添加有关显示安装位置的覆盖对话框的功能。
如果用户已安装该软件,并且他正在尝试在同一位置重新安装该软件,那么我想显示是否需要覆盖的信息?
我使用了以下功能,但在打开位置页面之前正在调用。
Function .onVerifyInstDirIfFileExists "$INSTDIR\temp.xls" PathGood
PathGood:
MessageBox MB_OKCANCEL "Do you want to overwrite the location with new installer ?" IDOK lbl_ok IDCANCEL lbl_cancel
lbl_ok:
lbl_cancel:
Quit
FunctionEnd
答案 0 :(得分:1)
.onVerifyInstDir
用于禁用“下一步”按钮,它不应显示UI:
每次用户更改安装目录时都会调用此代码,因此不应该对MessageBox等做任何疯狂的事情。如果此函数调用Abort,则$ INSTDIR中的安装路径将被视为无效。
如果要显示消息,则必须使用页面保留回调:
!include LogicLib.nsh
Function MyDirLeave
${If} ${FileExists} "$INSTDIR\temp.xls"
MessageBox MB_OKCANCEL "Do you want to overwrite the location with new installer?" IDOK +2
Abort ; Stay on the current page
${EndIf}
FunctionEnd
Page Directory "" "" MyDirLeave
Page InstFiles