• 締切済み

他のデスクトップアプリのデータを取得したい

VB.NET2003開発環境を持っています。 他の人が開発した、Windowsデスクトップアプリのラベル・テキストボックス・コンボボックス等のコントロール名とプロパティを取得したり、値を送る方法を調べています。 SendMessageとかAPIとかSpy++とか色々出てきたのですが、解決には至りません。 本屋などで書籍も見たんですが、欲しい機能はのっていません。 解決のヒントを頂きたいです。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

メモ帳のデータを取得する例を回答しています。 VBAの例ですが、ご参考まで。 http://okwave.jp/qa/q5548513.html

tocci_pc
質問者

お礼

メモ帳の取り込みではなくて、 「ベル・テキストボックス・コンボボックス等のコントロール名とプロパティを取得したり」です。 せっかくお答えしていただき申し訳ないのですが、よく読んでください。

  • nda23
  • ベストアンサー率54% (777/1416)
回答No.1

先ず、そのアプリケーションがCOMモデルとして作られて いるかどうかです。COMモデルでなければ、VB的な発想で コントロール名とかプロパティを得て何とかなるような シロモノではありません。 こうなると、ラベルとかテキストボックスもウィンドウの 一種であることを利用して、もっと基本的な方法で処理を 行う必要があります。 ウィンドウはウィンドウプロシージャと言うイベントを 処理するプログラムがあり、OSはイベントが発生する度に メッセージをウィンドウプロシージャに投げ込みます。 SendMessageはこのメッセージの投げ込みを行うAPIです。 メッセージを投げるには相手先となるウィンドウを掌握 しなければなりません。ラベルやテキストボックスのように あるフォーム(これもウィンドウ)の子オブジェクトに なっている場合はEnumChildWidowsというAPIで、親に 属する子ウィンドウを順に調べて、対象物を探します。 あと、ラベルではGetWindowTextで内容を得たりできます。 テキストボックスではEM_xxxというメッセージを送ることで、 色々な設定を取得したり、設定したりできます。 このあたりはC言語でWindow周りの処理を書いた経験が ないと、かなり難しいと思いますが、既述のAPIあたりから 調べていってみてください。

tocci_pc
質問者

お礼

ご回答ありがとうございます。 C言語回りの事は勉強してみます。

関連するQ&A