簡體   English   中英

如何在安裝時禁用NSIS中的按鈕?

[英]How can I disable a button in NSIS while installation?

我正在創建一個安裝程序,它有多個要安裝的組件(提供復選框以選擇所需的組件)。 現在,假設用戶沒有選擇任何選項,即使然后組件頁面上的“下一步”按鈕也被激活。如果沒有選擇任何選項,我想禁用下一個按鈕。 有人能告訴我怎么做嗎? 請幫我

如果你使用標准的集合窗口作為MUI或XPUI,你的問題很難解決,如果你使用的是現代UI(MUI),那么下一個代碼可以幫助你編寫你需要的功能(在XPUI的情況下,這不起作用所有)

警告 :我沒有測試了下道工序(剛剛編譯),因為我目前使用XPUI和我在我的安裝程序棄用MUI,而且我也沒有提供任何的邏輯重新啟用在OnChange_Service功能的“下一步”按鈕。

  1. 處理目標部分的事件更改,我不知道它是否有效,但我建議使用NSD_OnChange過程(在nsdialogs中定義)

    !包括'nsdialogs.nsh'

     Function <...> ${NSD_OnChange} <... name of the target section ...> OnChange_Service FunctionEnd 
  2. 在事件處理函數中放置代碼以禁用您的按鈕

    函數OnChange_Service

    var / GLOBAL NextButton

    GetDlgItem $ NextButton $ HWNDPARENT 1

    SectionGetFlags <...目標部分的名稱...> $ 0

    IntOp $ 0 $ 0&$ {SECTION_OFF}

    StrCmp $ 0“1”DISABLENEXT GOTOENDONCHANGE

    DISABLENEXT:

    EnableWindow $ NextButton 0

    GOTOENDONCHANGE:

    functionend

任何地方我認為如果你需要對窗口控制狀態進行一些操作,最好使用自定義窗口。

讓我知道它是否適用於您的項目

(如果你想在你的代碼中使用布爾運算符,那么使用LogicLib插件)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM