dポイントプレゼントキャンペーン実施中!

他人の作ったあるフリーソフトがあるのですが、そのソフトには、テキストボックスが2つ存在していて、そのうち、現在キー入力を受け付ける状態にある方のテキストボックスのハンドルを取得したいと思っています。
つまり、アクティブな子ウインドウを取得したいということなのですが、そのようなことは可能でしょうか?
自作ソフトならばなんとか分かるのですが、他人の作ったものでは無理なのでしょうか?
APIのGetForegroundWindowでは、トップレベルウインドウしか求めることが出来ないようですし。

よろしくお願い致します。

A 回答 (3件)

★アドバイス


・AttachThreadInput関数を利用します。
 次のリンクを参考にして下さい。
 http://homepage2.nifty.com/DSS/PT/HTML/VCPP/OTHE …→『フォーカスのあるウィンドウ』

参考URL:http://homepage2.nifty.com/DSS/PT/HTML/VCPP/OTHE …
    • good
    • 0
この回答へのお礼

サンプルありがとうございます。
GetGUIThreadInfo を使った方法で出来ましたが、サンプルの方法でも確認したところ見事に取得できました。
どうもありがとうございました。

お礼日時:2008/05/15 23:07

VisualStudioに付属しているSpy++とかで


そのソフト上のテキストボックスのクラス名を取得して
FindWindow/FindWindowExとかでウィンドウハンドルを取得。

あとは煮るなり焼くなり出来るかも・・・
    • good
    • 0
この回答へのお礼

ありがとうございます。参考にさせていただきます。

お礼日時:2008/05/15 23:05

GetWindowThreadProcessIdでウィンドウのスレッドIDをとって、GetGUIThreadInfoでそのスレッドのウィンドウ情報が取れるようですね。



MSDNを読んだだけなんで実際にどう動くのかは分かりませんが。
    • good
    • 0
この回答へのお礼

GetGUIThreadInfo を使うことによって、フォーカスのある子ウインドウを、見事に取得するとこができました。
どうもありがとうございました。

お礼日時:2008/05/15 23:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています