トップ回答者
別アプリのコントロールの値取得

質問
回答
-
対象のウィンドウによってアプローチが変わるかもしれません。
基本的にはウィンドウハンドルを取得して、そのウィンドウハンドルを使ってGetWindowTextというAPIを使うものだと思って下さい。
対象のウィンドウで、コントロールIDが変わらないのであればGetDlgItemを使えばウィンドウハンドルを取得できます。
コントロールIDが取れない、あるいは毎回変わるようなことがあれば、そのウィンドウ内で目的のコントロールを絞り込む工夫が必要ですが、そのあたりは一概には言えないと思います。(ぱっとは出せないので割愛します)
但し、対象によっては画面に絵として描画しているために、取得する術がない可能性もあります。
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。- 回答としてマーク PikaruCo 2009年4月14日 7:04
すべての返信
-
対象のウィンドウによってアプローチが変わるかもしれません。
基本的にはウィンドウハンドルを取得して、そのウィンドウハンドルを使ってGetWindowTextというAPIを使うものだと思って下さい。
対象のウィンドウで、コントロールIDが変わらないのであればGetDlgItemを使えばウィンドウハンドルを取得できます。
コントロールIDが取れない、あるいは毎回変わるようなことがあれば、そのウィンドウ内で目的のコントロールを絞り込む工夫が必要ですが、そのあたりは一概には言えないと思います。(ぱっとは出せないので割愛します)
但し、対象によっては画面に絵として描画しているために、取得する術がない可能性もあります。
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。- 回答としてマーク PikaruCo 2009年4月14日 7:04
-
以下のスレッドが参考になるかもしれません。あとはWCF(昔の.NET Remoting)なんかでもいいかもしれません。
WinAP間の通信方法は?
http://social.msdn.microsoft.com/Forums/ja-JP/vsgeneralja/thread/88e37fd4-da4f-4494-b877-2f2aee6c49c8/
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/ -
>trapemiyaさん
WinAP間の通信方法は?
http://social.msdn.microsoft.com/Forums/ja-JP/vsgeneralja/thread/88e37fd4-da4f-4494-b877-2f2aee6c49c8/
上記方法ですと、アプリBに手を加えないといけないので、この方法は使えません。
双方向での通信ではなく、アプリAがアプリBのスレッド内にあるコントロールの情報を取得出来るのがベストと考えております。
イメージとしては、VisualStudio.Net ツールの 「Spy++」のようにスレッド内のコントロールのプロパティを取得出来ればと思います。
ご提案ありがとうございました。