我想了解如何在NSIS安装程序脚本中,使用LogicLib.nsh中的IF逻辑与YESNOCANCEL MessageBox结合使用,以避免使用标签和goto语句。
有没有办法将MessageBox的结果捕获到某种变量中?
此外,我知道还有比NSIS更好的东西,但目前无法使用其他工具。=(
请注意下面代码中的{WHAT GOES HERE??}。如果这只是一个If...Else...,那就没问题了。
感谢您的帮助。
有没有办法将MessageBox的结果捕获到某种变量中?
此外,我知道还有比NSIS更好的东西,但目前无法使用其他工具。=(
请注意下面代码中的{WHAT GOES HERE??}。如果这只是一个If...Else...,那就没问题了。
感谢您的帮助。
${If} ${Cmd} `MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION
"PROGRAM X is already installed. Click YES to remove the installed version
found in C:\Program Files(x86). Click NO to skip uninstall and choose a
different install location (not recommended) or CANCEL to terminate
the installer." IDYES`
MessageBox MB_OK "Yes was clicked"
${ElseIf} {WHAT GOES HERE??}
MessageBox MB_OK "No was clicked"
${Else}
MessageBox MB_OK "Cancel was clicked"
${EndIf}
更新:我还发现了这个例子,但是我不确定${||}
是什么以及它如何帮助我。
; ifcmd..||..| and if/unless cmd
StrCpy $R2 ""
${IfCmd} MessageBox MB_YESNO "Please click Yes" IDYES ${||} StrCpy $R2 $R2A ${|}
${Unless} ${Cmd} `MessageBox MB_YESNO|MB_DEFBUTTON2 "Please click No" IDYES`
StrCpy $R2 $R2B
${EndUnless}
${If} $R2 == "AB"
DetailPrint "PASSED IfCmd/If Cmd test"
${Else}
DetailPrint "FAILED IfCmd/If Cmd test"
${EndIf}