2013-10-30 9 views
0

NSIS 제거 프로그램 페이지 사용자 지정시 research을 수행했으며 Welcome 및 마침 페이지를 사용하여 성공했습니다.NSIS 제거 프로그램 사용자 지정 확인 페이지

그러나 확인 페이지에서 시작 페이지와 동일한 템플릿을 사용하는 데 문제가 있습니다. 0이 아닌 height 값이있는 add any control using nsDialogs이 있으면 확인 페이지의 기존 컨트롤 (머리글과 단추 제외)이 모두 사라집니다. 여기

내 코드 (성공적 버튼 이름을 업데이트하지만, 해당 페이지의 다른 모든 컨트롤이 제거됩니다)

!include MUI2.nsh 

OutFile "CustomUninstaller.exe" 
InstallDir "C:\Program Files (x86)\NSIS\Examples\CustomFinish" 

!define APPNAME "Testing" 
Name "${APPNAME}" 

!insertmacro MUI_PAGE_INSTFILES 

!insertmacro MUI_UNPAGE_WELCOME 

!define MUI_PAGE_CUSTOMFUNCTION_SHOW un.ModifyUnConfirm ; My custom function for the Confirm page 
!insertmacro MUI_UNPAGE_CONFIRM 

!insertmacro MUI_UNPAGE_INSTFILES 
!insertmacro MUI_UNPAGE_FINISH 
!insertmacro MUI_LANGUAGE "English" 

Function un.ModifyUnConfirm 
    # Change "Uninstall" button to say "Continue" on uninstaller confirmation page 
    GetDlgItem $0 $HWNDPARENT 1 
    SendMessage $0 ${WM_SETTEXT} 0 "STR:Continue" 

    # Add new label. If these three lines are commented out, I see the regular controls of this page show up. 
    # The position, color and background of the label don't seem to matter 
    ${NSD_CreateLabel} 50% 50% 100% 10u "Testing!!!" 
    Pop $0 
    SetCtlColors $0 "" ${MUI_BGCOLOR} 
FunctionEnd 

Section TestUninstaller 
    WriteUninstaller "$INSTDIR\unCustomUninstaller.exe" 
    ExecWait "$INSTDIR\unCustomUninstaller.exe" 
Sectionend 

질문입니다 :

    컨트롤이 사라질 이유
  1. 사람이 알고 있나요?
  2. 이 페이지에 컨트롤을 추가하려면 무엇을해야합니까?

답변

2

MUI_UNPAGE_CONFIRM은 nsDialogs 페이지가 아닙니다!

이 대화 상자를 변경하려면 ChangeUI 명령을 사용하십시오. 또한 런타임에 컨트롤을 추가하지만 시스템 플러그인을 사용하여 할 수 있습니다

Function un.ModifyUnConfirm 
    FindWindow $1 "#32770" "" $HWNDPARENT ; Find inner dialog 
    System::Call 'USER32::CreateWindowEx(i${__NSD_Label_EXSTYLE},t"${__NSD_Label_CLASS}",t "Testing!!!",i${__NSD_Label_STYLE},i 50,i 100,i 400, i 25,i$1,i0,i0,i0)i.s' 
    Pop $0 
    SendMessage $HWNDPARENT ${WM_GETFONT} 0 0 $1 
    SendMessage $0 ${WM_SETFONT} $1 1 
    SetCtlColors $0 "" ${MUI_BGCOLOR} ; This is the wrong color to use... 
FunctionEnd 
+0

내가 볼 - 내가 해당 페이지가 nsDialgos 페이지로 간주되지 않는다는 것을 인식했다. 알아 둘만한. Anders에게 다시 한 번 감사드립니다. – diaho