L'aggiunta di etichette personalizzate in pagine di dialogo NSIS, mostrare e nascondere le etichette nelle pagine NSIS MUI Directory condizionale, come ottenere gli ID dei etichette
-
27-10-2019 - |
Domanda
Come nascondere un'etichetta personalizzata aggiunto sulla pagina di dialogo Directory del programma di installazione NSIS. L'etichetta è aggiunto utilizzando il Resource Hacker e il relativo ID è di 1300
Come cambiare il testo dell'etichetta condizionatamente?
Se choses degli utenti di installare DEMO, poi il testo dell'etichetta dovrebbe essere "DEMO", e se choses degli utenti di installare UPDATE, poi il testo dell'etichetta dovrebbe essere "UPDATE"
ho aggiunto 2 etichette, ora sto nascondendo e mostrando loro accordingly.Label1 ID è 1300, Label2 ID è 1301.
# Occurs on Directory page show.
Function DirectoryShow
${If} $InstallType == DEMO
GetDlgItem $5 $HWNDPARENT 1300
MessageBox MB_OK "ID of First Label is $5" ----IT SHOWS '0' INSTEAD OF SHOWING 1300
${NSD_SetText} $5 "INSTALLING DEMO OF SOFTWARE!!!!!!!!!!!!!!!!!"
GetDlgItem $6 $HWNDPARENT 1301
ShowWindow $6 ${SW_HIDE}
;GetDlgItem $1 $HWNDPARENT 2
;ShowWindow $0 ${SW_SHOW}
;ShowWindow $1 ${SW_HIDE}
${Else}
GetDlgItem $7 $HWNDPARENT 1300
ShowWindow $7 ${SW_HIDE}
GetDlgItem $8 $HWNDPARENT 1301
${NSD_SetText} $8 "UPDATING EXISTING SOFTWARE !!!!!!!!!!!!!!!!!"
${EndIf}
FunctionEnd
Come faccio a ottenere l'ID di queste etichette?
Soluzione
NSIS utilizza una finestra di bambino per ospitare le pagine effettive:
Innanzitutto è necessario per ottenere l'handle alla finestra di dialogo interiore, allora è possibile trovare l'etichetta:
FindWindow $0 "#32770" "" $HWNDPARENT ;(This is documented under section 4.9.14.6 in the help file)
GetDlgItem $5 $0 1300