我正在使用NSIS安裝程序。其中一個要求是允許用戶爲多個不同的條目多次輸入一些信息(實質上,它允許他們爲他們想要的任意數量的服務器輸入服務器信息)。我目前通過後,我的高級選項頁到這個頁面回收頁:在InstallOptions頁面中清除字段的狀態
Function RedirectPage
${If} $addtCheck <> 0 ; Was the checkbox checked?
StrCpy $startedXml 1 ; make this "true"
SendMessage $HWNDPARENT 0x408 -1 "" ; If so, go back
${Else}
Abort
${EndIf}
FunctionEnd
addtCheck
檢查是否複選框被選中的是回收的頁面。如果是這樣,這個功能會導致上一頁再次顯示。問題是這些字段包含用戶剛輸入的信息。現在,我想要做的是在返回之前清除前一頁中所有字段的狀態。我試過這樣做,
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioAdv.ini" "Field 2" "State" ""
但它似乎並沒有讓我清除狀態。我知道SendMessage
和GetDlgItem
命令,但我不知道有任何方法可以讓我使用它們來清除InstallOptions INI文件中包含的文本框,複選框和列表框。
任何人都可以指出我正確的方向,謝謝。如果你想看更多劇本,請告訴我。
我能得到使用這個工作解決方案。謝謝。雖然它可能不是最優雅的解決方案,但單獨更改每個字段可以完全控制頁面,並且工作得非常好。我很感激。 –