0
我有這樣的NSIS腳本:NSIS靜默安裝 -/SD IDCANCEL標誌
Section "!${SECTION_MAIN}" sectionMainID
SetOutPath "$INSTDIR"
whileRuns:
LockedList::FindProcess "$INSTDIR\bin\${PRODUCT_NAME}.exe"
Pop $R0
${If} $R0 != ``
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "this is running. Please close it first." IDOK OK IDCANCEL CANCEL
OK:
Goto whileMLRuns
CANCEL:
Abort
${EndIf}
我想將其更改到靜音模式。在靜音模式下,我希望自動消息框以CANCEL結束。所以,根據doc,我把一個/SD
的標誌,用IDCANCEL
的命令在MessageBox
的末尾。像這樣:
Section "!${SECTION_MAIN}" sectionMainID
SetOutPath "$INSTDIR"
whileRuns:
LockedList::FindProcess "$INSTDIR\bin\${PRODUCT_NAME}.exe"
Pop $R0
${If} $R0 != ``
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "this is running. Please close it first." IDOK OK IDCANCEL CANCEL /SD IDCANCEL
OK:
Goto whileMLRuns
CANCEL:
Abort
${EndIf}
但是,這是失敗的。所以,我在同一條直線改成了
Section "!${SECTION_MAIN}" sectionMainID
SetOutPath "$INSTDIR"
whileRuns:
LockedList::FindProcess "$INSTDIR\bin\${PRODUCT_NAME}.exe"
Pop $R0
${If} $R0 != ``
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "this is running. Please close it first." IDOK OK IDCANCEL CANCEL /SD CANCEL
OK:
Goto whileMLRuns
CANCEL:
Abort
${EndIf}
與現在CANCEL
,而不是IDCANCEL
。這是因爲在這種語法下,它與用戶交互模式中的語法相同。但是,它似乎也沒有工作。
我的國旗有什麼問題,我該如何解決這個問題?我是否應該用跳轉的語法來代替?