- ベストアンサー
Aプログラムの画面表示情報をVBより参照したいのですが....
最近VB2005をはじめた超初心者です。 Aと言うプログラムの画面表示上に通常0の数字が入っている項目があります、この項目が0→1になったときVB側で情報をつかみVB側で作成した処理をさせたいと思っています。 教えてgoo、ネット等で調べましたが同類の回答が見つかりませんどうぞよろしくお願いします。 現在わかったこと。 1.画面上の表示データを調べるにはウィンドウエックスプローラを使うらしい。 2.WIN32APIに対してGETを発行するらしい。 できましたら手順とサンプルを回答していただければ大変助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 1については教えてgoo できれば URL も明記して頂けると良かったのですが…… > 2についてはVB2005のヘルプ GET に続く文字列はありませんでしたか? > サンプルに関しては回答していただいた方にご迷惑がかかるかも というより、あなたご自身が意味をわからずに使うのはよろしくないという意味です。 > ヒントに基づき自力で書籍等で調べたいと思います ご質問の「Aと言うプログラムの画面表示上に通常0の数字が入っている項目」というのは文字列ですか? DrawText などで描画された画像の場合は文字列として取れないと思われますが、次のような手順を 踏めば取得できるかも知れません。 (1) メインウィンドのハンドルを得る マウスカーソルの位置からであれば WindowFromPoint ウィンドキャプションの条件からであれば FindWindow または EnumWindows など、まだ他にもありますが…… これがおそらくあなたの仰る「A というプログラム」のウィンドハンドルを得る操作になると思われます。 (2) メインウィンドのハンドルから子ウィンドを列挙する EnumChildWindows など これがあなたの仰る「項目」という子ウィンドハンドルを得る操作になると思われます。 (3) ウィンドの中から所望のテキストを得る GetWindowText など ここで運が良ければあなたの仰っている「0」や「1」というテキストが得られることになります。 場合によっては 1 ~ 3 を組み合わせて所望のウィンドを探す必要があるかも知れません。 また WIN32API を使わず VB2005 のみでも (1) の列挙は出来ます。 @IT:.NET TIPS デスクトップ上のすべてのメイン・ウィンドウを列挙するには? - C# VB.NET http://www.atmarkit.co.jp/fdotnet/dotnettips/233enumwin/enumwin.html
その他の回答 (1)
- x415f484f
- ベストアンサー率71% (57/80)
※ 回答ではありませんが…… 失礼な意見を申し上げて申し訳ないのですが、「超初心者」と仰られているのなら、 手順やサンプルソースをご覧になられたところで意味が理解できないのはとても 危険だと思います。(理由は後述) > 1.画面上の表示データを調べるにはウィンドウエックスプローラを使うらしい。 それはどこでお調べになりましたか? > 2.WIN32APIに対してGETを発行するらしい。 WIN32API のどういう関数を使えば実現できるかはお調べになりましたか? > できましたら手順とサンプルを回答していただければ大変助かります。 自力でここまで書いたがどうしても出来ないとかいう姿勢がないとより良い回答は得ら れないと思います。 ご自分で意味も判らないコードをそのまま実行しようとすること自体がとても危険なこと ではないでしょうか? ここの場合は善意をもって回答されておられる方々が殆んどだと認識しておりますが、 絶対に安全ということは言いきれないのではないでしょうか? 別に回答者の悪意ではなく、ちょっとした記述ミスなどでもあなたのパソコンで実行すれば、 あなたの大切なファイルを消してしまうようなコードである可能性も否定できないのです。 丸投げではなく自力でやらないと達成感が得られないのではないでしょうか?
お礼
アドバイスありがとうございます。 1については教えてgoo 2についてはVB2005のヘルプ サンプルに関しては回答していただいた方にご迷惑がかかるかも 知れませんので記述のヒントをお願いします。 ヒントに基づき自力で書籍等で調べたいと思いますのでどうぞよろしくお願いします。
お礼
ありがとうございます。 ○メインウィンドのハンドルを得る→メインウィンドのハンドルから子ウィンドを列挙する→ウィンドの中から所望のテキストを得る(手順と記述のヒントいただけました。) かじり始めたばかりのVB2005でかなり難しいことを考えてました。もう少し勉強して、ご回答いただいた手順とヒントを元にトライしたいと思います。