投稿日 | : 2007/06/26(Tue) 21:58 |
投稿者 | : 花ちゃん |
Eメール | : |
URL | : |
タイトル | : Re^3: 他アプリのボタンのフォーカス移動 |
> TAB キーを送る場合ですが、ボタンのキャプション(今回の場合は「いいえ」)を指定して
> 送る事はできるのでしょうか?
指定する事はできません、あるいはボタンのハンドルを取得すればできるかも?
試してみたら、できるようです。
メッセージボックスのウィンドウのハンドルを取得して、その子ウインドウ
(いいえのボタン)を取得する
下記のような感じでできるかと。
'キャプション名を与えてウインドウのハンドルを取得
hTargetWindow = FindWindowEx(0, 0, vbNullString, "メッセージボックスのタイトル")
'クラス名を与えてハンドルを取得する場合
'hTargetWindow = FindWindowEx(0, 0, "Scicalc", vbNullString)
If hTargetWindow = 0 Then Exit Sub
'子ウインドウのハンドルを取得(8のボタン)
hChildWindow = FindWindowEx(hTargetWindow, 0, vbNullString, "いいえ")
If hChildWindow = 0 Then Exit Sub
'子ウインドウをアクティブにする
lngResult = SendMessage(hChildWindow, WM_ACTIVATE, 1, ByVal 0&)
'子ウインドウをクリックする
lngResult = SendMessage(hChildWindow, BM_CLICK, 0, ByVal 0&)