tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 指定のハンドルに矢印キーの送信 postmessage
投稿日: 2018/08/15(Wed) 18:17
投稿者魔界の仮面弁士
> ある、パッケージアプリがあり、そこへの入力をある程度自由化しようと試みています。
IAccessible インターフェイスの
accSelect メソッド / accDoDefaultAction メソッドを使ってみるのはいかがでしょう。


> 選択項目が3つあり、下段に OK、キャンセル、ヘルプボタンがあります。
その選択項目とは何のオブジェクトですか?
ListBox なのか Button なのか、あるいは単に描画されているだけなのか。


> hWnd = FindWindowEx(0, 0, "ウィンドウクラス", "hogehoge") 'このウィンドウを選択
> Cwnd = GetWindow(hwnd, 5)
> Cwnd = GetWindow(Cwnd, 2)
5 は GW_CHILD 、2 は GW_HWNDNEXT ですね。


> そこで、矢印キーを送信したのですが選択肢が動きません
そのアプリは、WM_KEYUP / WM_KEYDOWN を処理する仕様になっているのでしょうか。
処理しているとしたら、親ウィンドウと子ウィンドウ、どちらで受ける仕様でしょうか。
(たとえば、GetAsyncKeyState にて判定する実装だったりするかもしれません)


> Ret = PostMessage(Cwnd, WM_KEYUP, VK_DOWN, 1)
WM_KEYUP なのに lParam (というか lKeyData) に 1 を渡しているのは意図的なものですか?
http://chokuto.ifdef.jp/urawaza/message/WM_KEYUP.html


> Cwnd P WM_KEYUP nVirtKey:VK_DOWN cRpeat:1 ScanCode:50 fExtended:1 ...
> Scancode? Extennted ?

cRepeat   = CLng(lKeyData And &H0000FFFF&)'\ &H00000001&
ScanCode  = CLng(lKeyData And &H00FF0000&) \ &H00010000&
fExtended = CLng(lKeyData And &H01000000&) \ &H01000000&
Reserved  = CLng(lKeyData And &H1E000000&) \ &H02000000&
fAltDown  = CLng(lKeyData And &H20000000&) \ &H20000000&
fRepeat   = CLng(lKeyData And &H40000000&) \ &H40000000&
fUp       = CLng(lKeyData And &H80000000&) \ &H80000000&

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。