NSISスクリプト内/外からWindows IDを入手する
質問
ウィンドウ "ID" - Win32ウィンドウに関連付けられているユニークな番号を取得する方法は?
NSISスクリプト(.nsiファイル)内のIDを取得できますか?どんな外部プログラムを使うことができないのですか?私のインストーラを何らかの理由で実行すると、Reshackerが正しいダイアログを表示していません。私はそれに似た名前のgdispyや何かを聞いたことがあります。
MUI2ページ内の一部のウィンドウのzインデックスを変更し、カスタムページ内でチェックボックスの背景を設定します。
WindowsユニークIDを見つけるための最も簡単な方法は何ですか?
編集 申し訳ありませんが、私は正しい用語に慣れていません。私はhwnd変数/ハンドルについて話していません。整数のWindows固有のウィンドウIDについて話しています。
# In NSIS
GetDlgItem $R0 ${parentHWND} 1012 # the 1012 is what I am referring to as the window ID
. 解決
ダイアログのIDは、 winspy ++ のようなスパイツールで見つけることができます。(このツールはそれを16進数で表示されます.Cecc.exeで変換するか、.nsiで0xの数値を0x)
で表示されます。NSISには2つのネストされたダイアログがあり、外部ダイアログは次のボタンとキャンセルボタンをホストします。内部ダイアログは現在のページのコントロールをホストします。
外部ダイアログのボタンにハンドルを取得するには:
GetDlgItem $1 $hwndparent 1
.
と内部ダイアログの場合:
FindWindow $0 "#32770" "" $HWNDPARENT ;Find inner dialog first
GetDlgItem $1 $0 0x666
.
カスタムページの場合、ID(およびZ順)は、コントロールを作成した順序によって異なります...
所属していません StackOverflow