他プロセスのControlを自動操作

[戻る]
とも 2008/02/29(金) 10:16:17
他プロセスのControlを自動操作

はじめまして。

今、他プロセス(アプリ)の画面上のコントロールを
取得したり操作するものを考えています。

SendInput、FindWindow、EnumWindows等、
これ系の基本的な操作は問題無いのですが、
下2つの実現方法で悩んでいます。

1)画面上のコンボボックスの選択を特定のものにする

例えば、色を選ぶコンボボックスで
赤・黄・青の3アイテムが入っていて、今は赤がカレントにあるとします。
これを別プロセスのアプリから「黄」としたいのです。

SendInputでの自動操作の概念よりは、
何かメッセージを送って変更できないのでしょうか?


2)画面上のリストボックスの選択を特定のものにする

これも1)と同じで、リストボックスは見つかるのですが、
その中のn番目、もしくはある文字のItemを選択状態にしたいのです。


どなたかご存知の方いらっしゃいませんか?

調査中でプラットフォームは決まっていないのですが、
Win2000以降の、Win32API+.Net2.0を想定しています。

PATIO 2008/02/29(金) 13:38:24
既に試されているかもしれませんが、
コンボボックスやリストボックスのウインドウハンドルがわかっていれば、
SendMessageでコントロールできないのでしょうか?
プロセスを跨ぐのでポインタ渡しになるケースは駄目かもしれませんが、
値渡しであれば、何とかなるのではないかと言う気がします。
CB_SETCURSELやLB_SETCURSEL使ってみてはどうでしょうか。

古いスレッドには追加発言できません。