タイトル : 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をやってみました。見事に上矢印の送信ができて選択項目も変わりました。 ただ、これは、対象ウィンドウがアクティブ化していないといけませんよね。 これを許しちゃうと、他の作業との混乱の元かなと |