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

タイトル Re^4: 指定のハンドルに矢印キーの送信 postmessage
投稿日: 2018/08/17(Fri) 16:48
投稿者jusu
> > objacc.accSelect(SELFLAG_TAKEFOCUS)で画面がアクティブになりました
> SELFLAG_何某SELECTION でアイテムを選択できますか?
> https://msdn.microsoft.com/ja-jp/library/cc447533.aspx
有効なのは SELFLAG_TAKEFOCUS  あとは、数値でもTAKESELECTIONでも反応しません

> > ここにキーを送信というのはどうやるのでしょうか
> 「矢印キー上下」か「マウスクリック」で選択できると聞いたので、
> MSAA で選択できるではないかと踏んだのですが、
> もしかして選択することが目的なのではなく、選択後に
> さらにキー送信を行うことまでが目的なのでしょうか?
いえいえ、マウスクリックまたは、上矢印キーで項目を選択して
 最終的にはこのダイヤログのOKボタンを押すことを自動化できればよいのです。
 OKボタンのクリックはSendmessegeで可能でした

> > > ListBox なのか Button なのか、あるいは単に描画されているだけなのか。
> > 恐らく描画だと思いますが、調べる方法がわかりません
> Spy++、UIAutomationSpy、Inspect などでクラス名だけでも得られないでしょうか。
UIAUtomationSpyeについては、今研究しています
クラス名というのは、そのアプリケーションでオリジナルなものですよね
spyで見たところ
そのウィンドウのtopはクラス名の一部に、Dialogとあり、対象の選択エリアには
**MServerとありました。全公開していいのかな(;´∀`)
ちなみに、別の状況があって、そこにF-3を送信しているのはうまくいきます
このクラスはEditです。
やはり特殊な処理のなのでしょうか

> たとえば DirectInput でキー入力を捉えているようなアプリだと、
> PostMessage/SendMessage でメッセージキューを送りつけても意味が無いので、
> SendInput で仮想キーとスキャンコードを送り付けてみる必要があったりとか。
> https://dobon.net/vb/bbs/log3-36/22123.html
SendInputをやってみました。見事に上矢印の送信ができて選択項目も変わりました。
ただ、これは、対象ウィンドウがアクティブ化していないといけませんよね。
これを許しちゃうと、他の作業との混乱の元かなと

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

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