2013-10-18 110 views
2

我試圖添加一個複選框到我的NSIS卸載程序的歡迎屏幕,但我無法找到示例。從MUI2的documentation我找不到任何可以在歡迎頁面上運行的自定義函數。添加複選框到NSIS卸載程序歡迎頁面

它看起來像完成頁面更容易根據我找到的文檔和其他answer定製。

有沒有辦法自定義歡迎頁面?如果不是,那麼完成意向的其他選擇是什麼?

回答

3

您鏈接到的MUI(1)文檔有關於如何在pre/show回調中定製歡迎頁面的說明。使用MUI2,您可以在show callback中添加控件。見nsDialogs文檔,瞭解關於這些自定義控件的詳細信息...

!include MUI2.nsh 
!insertmacro MUI_PAGE_INSTFILES 
!define MUI_PAGE_CUSTOMFUNCTION_SHOW un.ModifyUnWelcome 
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.LeaveUnWelcome 
!insertmacro MUI_UNPAGE_WELCOME 
!insertmacro MUI_UNPAGE_INSTFILES 
!insertmacro MUI_LANGUAGE English 

Var mycheckbox ; You could just store the HWND in $1 etc if you don't want this extra variable 

Function un.ModifyUnWelcome 
${NSD_CreateCheckbox} 120u -18u 50% 12u "Do something special" 
Pop $mycheckbox 
SetCtlColors $mycheckbox "" ${MUI_BGCOLOR} 
${NSD_Check} $mycheckbox ; Check it by default 
FunctionEnd 

Function un.LeaveUnWelcome 
${NSD_GetState} $mycheckbox $0 
${If} $0 <> 0 
    MessageBox mb_ok "I'm special" 
${EndIf} 
FunctionEnd 

Section testuninstaller 
Initpluginsdir 
WriteUninstaller "$pluginsdir\u.exe" 
ExecWait '"$pluginsdir\u.exe" _?=$pluginsdir' 
Sectionend 
+0

複選框對我有問題,這豈不是對所有其表面的clickeable。我改變了座標以使其工作:'120u -20u 50%20u' – dothebart