- 締切済み
他のデスクトップアプリのデータを取得したい
VB.NET2003開発環境を持っています。 他の人が開発した、Windowsデスクトップアプリのラベル・テキストボックス・コンボボックス等のコントロール名とプロパティを取得したり、値を送る方法を調べています。 SendMessageとかAPIとかSpy++とか色々出てきたのですが、解決には至りません。 本屋などで書籍も見たんですが、欲しい機能はのっていません。 解決のヒントを頂きたいです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mitarashi
- ベストアンサー率59% (574/965)
メモ帳のデータを取得する例を回答しています。 VBAの例ですが、ご参考まで。 http://okwave.jp/qa/q5548513.html
- nda23
- ベストアンサー率54% (777/1416)
先ず、そのアプリケーションがCOMモデルとして作られて いるかどうかです。COMモデルでなければ、VB的な発想で コントロール名とかプロパティを得て何とかなるような シロモノではありません。 こうなると、ラベルとかテキストボックスもウィンドウの 一種であることを利用して、もっと基本的な方法で処理を 行う必要があります。 ウィンドウはウィンドウプロシージャと言うイベントを 処理するプログラムがあり、OSはイベントが発生する度に メッセージをウィンドウプロシージャに投げ込みます。 SendMessageはこのメッセージの投げ込みを行うAPIです。 メッセージを投げるには相手先となるウィンドウを掌握 しなければなりません。ラベルやテキストボックスのように あるフォーム(これもウィンドウ)の子オブジェクトに なっている場合はEnumChildWidowsというAPIで、親に 属する子ウィンドウを順に調べて、対象物を探します。 あと、ラベルではGetWindowTextで内容を得たりできます。 テキストボックスではEM_xxxというメッセージを送ることで、 色々な設定を取得したり、設定したりできます。 このあたりはC言語でWindow周りの処理を書いた経験が ないと、かなり難しいと思いますが、既述のAPIあたりから 調べていってみてください。
お礼
ご回答ありがとうございます。 C言語回りの事は勉強してみます。
お礼
メモ帳の取り込みではなくて、 「ベル・テキストボックス・コンボボックス等のコントロール名とプロパティを取得したり」です。 せっかくお答えしていただき申し訳ないのですが、よく読んでください。