Ajout d'étiquettes personnalisées dans les pages de dialogue NSIS, montrant et les étiquettes se cachant dans les pages NSIS MUI Directory sous condition, comment obtenir les IDs des étiquettes
-
27-10-2019 - |
Question
Comment cacher une étiquette personnalisée ajoutée sur le répertoire page de dialogue de l'installateur NSIS. L'étiquette est ajoutée à l'aide du Resource Hacker et son identifiant est 1300
Comment modifier le texte de l'étiquette conditionnelle?
Si l'utilisateur à droits incorporels installer DEMO, le texte de l'étiquette doit être « DEMO », et si l'utilisateur à droits incorporels installer Update, le texte de l'étiquette doit être « Mettre à Jour »
J'ai ajouté 2 étiquettes, maintenant je me cache et en leur montrant accordingly.Label1 ID est 1300, ID Label2 est 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
Comment obtenir l'ID ÉTIQUETTES?
La solution
NSIS utilise une boîte de dialogue de l'enfant pour héberger les pages réelles:
Vous devez d'abord obtenir la poignée de la boîte de dialogue intérieur, vous trouverez l'étiquette:
FindWindow $0 "#32770" "" $HWNDPARENT ;(This is documented under section 4.9.14.6 in the help file)
GetDlgItem $5 $0 1300