0

ウィンドウ「id」(Win32ウィンドウに関連付けられた一意の番号)を取得するにはどうすればよいですか?

NSISスクリプト(.nsiファイル)内でIDを取得できますか?そうでない場合、どの外部プログラムを使用できますか?何らかの理由でインストーラーを実行すると、ResHackerが正しいダイアログを表示しません。GDISpyかそれに似た名前の何かを聞いたことがあります。

私がやろうとしているのは、MUI2ページ内のいくつかのウィンドウのzインデックスを変更し、カスタムページ内でチェックボックスの背景を透明に設定することです。

Windowsの一意のIDを見つけるための最も簡単な方法は何ですか?

編集 申し訳ありませんが、私は正しい用語に精通していませんが、私が話していることを意味します。私はHWND変数/ハンドルについて話しているのではありません。整数であるそのウィンドウの一意のウィンドウIDについて話しているのです。

# In NSIS 
GetDlgItem $R0 ${parentHWND} 1012 # the 1012 is what I am referring to as the window ID 
4

1 に答える 1

2

子コントロールのダイアログのIDは、Winspy ++などのスパイツールで見つけることができます(このツールは16進数で表示されるため、calc.exeで変換するか、.nsiで数値の前に0xを付けます)

NSISには2つのネストされたダイアログがあり、外側のダイアログは次、戻る、キャンセルボタンをホストします。内側のダイアログは、現在のページのコントロールをホストします。

外側のダイアログのボタンへのハンドルを取得するには:

GetDlgItem $1 $hwndparent 1

そして、内部ダイアログの場合:

FindWindow $0 "#32770" "" $HWNDPARENT ;Find inner dialog first
GetDlgItem $1 $0 0x666

カスタムページの場合、id(およびzオーダー)は、コントロールを作成する順序によって異なります...

于 2012-05-22T06:48:09.560 に答える