如何隐藏NSIS安装程序的目录页面对话框中添加的自定义LABEL。 使用Resource Hacker添加LABEL,其ID为1300
如何有条件地更改LABEL的文本?
如果用户选择安装DEMO,那么标签文本应为“DEMO”,如果用户选择安装UPDATE,则标签文本应为“UPDATE”
我添加了2个标签,现在我隐藏并相应地显示它们.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
我如何获得这些标签的ID?
答案 0 :(得分:5)
NSIS使用子对话框来托管实际页面:
您首先需要获取内部对话框的句柄,然后您可以找到标签:
FindWindow $0 "#32770" "" $HWNDPARENT ;(This is documented under section 4.9.14.6 in the help file)
GetDlgItem $5 $0 1300