どうやら、
コピット!(Copit!)
http://www.vector.co.jp/soft/win95/util/se178998.html
Get!Get! Version 1.0.7
http://www.poteto-house.com/poteto/
などのソフトウェアを使えば可能なようですが、自分のソフトに組み込みたいので具体的なソースコードを教えて下さい。
EnumWindows()ですべてのウィンドウを検索し、必要なウィンドウに対してWM_GETTEXTを送ることでウィンドウのタイトルを取得することができます。
EnumWindows()はトップレベルウィンドウしか検索対象になりませんので、必要に応じて列挙された個々のウィンドウに対して、さらにGetWindow()を使って子ウィンドウ、孫ウィンドウなどを芋づる式に検索する必要があります。
ダイアログ内のコントロール(スタティック、エディットなど)は、ダイアログのウィンドウの子ウィンドウの扱いになります。
ちなみにウィンドウがダイアログかどうか判別するには、GetClassName()でウィンドウのクラス名を取得して調べます。ダイアログの場合はクラス名が "#32770" になります。スタティックコントロールなら "Static"、エディットなら "Edit" などのようなクラス名になります。
C++の例で恐縮ですが、
猫でもわかる101章:マウスキャプチャー
http://www.kumei.ne.jp/c_lang/sdk2/sdk_101.htm
猫でもわかる102章:(他人様のプログラムの)ウィンドウタイトルを変更する
http://www.kumei.ne.jp/c_lang/sdk2/sdk_102.htm
辺りを参考にちょっと工夫すればできるはず。
パスワード閲覧ソフトの仕組み
http://ruffnex.oc.to/kenji/text/passget/
などもご参考まで。
なるほどEnumWindowProcやsendmessageを使えばできそうですね。より近いソースコードが書いてあるところは無いでしょうか?あとwindowがダイアログかどうか判別する方法が知りたいです。
EnumWindows()ですべてのウィンドウを検索し、必要なウィンドウに対してWM_GETTEXTを送ることでウィンドウのタイトルを取得することができます。
EnumWindows()はトップレベルウィンドウしか検索対象になりませんので、必要に応じて列挙された個々のウィンドウに対して、さらにGetWindow()を使って子ウィンドウ、孫ウィンドウなどを芋づる式に検索する必要があります。
ダイアログ内のコントロール(スタティック、エディットなど)は、ダイアログのウィンドウの子ウィンドウの扱いになります。
ちなみにウィンドウがダイアログかどうか判別するには、GetClassName()でウィンドウのクラス名を取得して調べます。ダイアログの場合はクラス名が "#32770" になります。スタティックコントロールなら "Static"、エディットなら "Edit" などのようなクラス名になります。
なんとか試せそうです。
tokuya_n さん、ardarim さん、ありがとうございました。
なんとか試せそうです。
tokuya_n さん、ardarim さん、ありがとうございました。