こんにちは。VB6で開発を行っています。
ウィンドウに表示されている文字列を取得できるようなAPIとかって、あるんでしょうか??(たとえばメッセージボックスメッセージの部分の文字列とか、フォームのラベルの文字列(LabelのCaptionプロパティに設定する文字列)等のことです。)
ウィンドウタイトルの取得はAPIでできますよね〜でも内部の文字列を取得なんて、できるんでしょうか??どなたかご存知の方がみえたら、よろしくおねがいします。
いちおうWindowsの標準コントロールならWM_GETTEXTあたりで取れそうだけど、
まぁ相手のウィンドウハンドルさえわかればね。
投稿しようとしたら
いちゆさんとかぶりました・・・
書き直すのはもったいないのでそのまま投稿します
--------------------------------------------------
対象の親ウインドウのウインドウハンドルがわかっていれば
EnumChildWindowsを使用して子ウインドウのハンドルが取得できます
そのハンドルに対して
SendMessageでWM_GETTEXTを投げてみれば取得できると思われます
ただしそれはStaticクラスの場合は、です
メッセージボックスのメッセージ部分はStaticクラスなので取得できますが、
VBで作成されたアプリのラベルを使用している部分は取得できなかったと記憶しています
(なぜならウインドウハンドルが無いから、おそらくTextOutなどのAPIを使用して表示しているだけかと思われます)
いちゆさんありがとうございます。
ウィンドウハンドルの取得はAPIでできると思います。
ところで、WM_GETTEXTとは何でしょうか!?もう少し詳しく教えていただけないでしょうか??
単語わかっているんだから、Web検索で
自分で探してみようとか思いません?
遅ればせながら、
karaさんに教えていただいた方法で取得することができました。
ちなみに、調べていたんですがGetWindowTextでも取得できるみたいです☆
いちゆさん、kara さん
どうもありがとうございました!
> ちなみに、調べていたんですがGetWindowTextでも取得できるみたいです☆
GetWindowTextですと、フォームのCaption程度なら取れそうですが、
テキストボックス(EditBox)などの情報は取得出来ないと思いますよ。
自分自身のコントロールの内容なら取得出来ると思いますが、
他プロセスのコントロールの値は、やはりWM_GETTEXTを使うことになるかと。
# 対象となるコントロールによっては(例えばListViewとか)、
# WM_GETTEXTでも取得できませんけどね。
ツイート | ![]() |