0

NSIS インストーラーのディレクトリ ページ ダイアログに追加されたカスタム ラベルを非表示にする方法。LABEL は Resource Hacker を使用して追加され、その 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 を取得するにはどうすればよいですか?

4

1 に答える 1

5

NSIS は子ダイアログを使用して実際のページをホストします。

ここに画像の説明を入力

最初に内部ダイアログへのハンドルを取得する必要があり、次にラベルを見つけることができます:

FindWindow $0 "#32770" "" $HWNDPARENT ;(This is documented under section 4.9.14.6 in the help file)
GetDlgItem $5 $0 1300
于 2011-04-29T13:02:23.780 に答える