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

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

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?

Était-ce utile?

La solution

NSIS utilise une boîte de dialogue de l'enfant pour héberger les pages réelles:

entrer image description ici

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top