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

StackOverflow https://stackoverflow.com/questions/5831920

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?

È stato utile?

Soluzione

NSIS utilizza una finestra di bambino per ospitare le pagine effettive:

entrare descrizione dell'immagine qui

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top