初めて質問させて頂きます、KUNOと言うものですが
どなたか良きご指導願います。
プロセス間でメッセージのやり取りをしようと
思っているのですが、相手のハンドルを取得する
方法としてFindWindowがあると思うのですが
ターゲットウィンドウのキャプションではなく
”クラス名”でハンドルを取得したいのですが、
うまく行きません。
1:FindWindowの一番目の引数のクラス名の定義とはなんなのでしょう?
(ダイアログID,ソースファイルのクラス名でもうまく行きません・・・)
2:FindWindow以外で目的のウィンドウのハンドルを取得する方法はないでしょうか?
(キャプションを利用しないで・・・)
以上お解かりの方がいらっしゃいましたらご指導願います。
以上よろしくお願いいたします。m(_ _)m
>”クラス名”でハンドルを取得したいのですが
これは、無理のように思えますけど
そもそもクラス名とは、ソースコード上だけの話で
個々のEXEはインタープリタで動作しているわけでは無いので
ソースコードが伴っていない動作環境では文字列として
取得できないのでは無いでしょうか
とりあえず……。
マルチポストはやめましょう&解決したら書き込んだ全ての掲示板とMLに要約を書き込
んで下さい。
>1:FindWindowの一番目の引数のクラス名の定義とはなんなのでしょう?
> (ダイアログID,ソースファイルのクラス名でもうまく行きません・・・)
ウィンドウクラス名はウィンドウクラス名です。
RegisterClass(Ex) APIでシステムに登録された名前で,
CreateWindowEx APIの第二引数に使われた名前です。
ちなみに,ソース上のクラスとは全く関係ありません。
>2:FindWindow以外で目的のウィンドウのハンドルを取得する方法はないでしょうか?
> (キャプションを利用しないで・・・)
どこまで情報がわかっているかによりますが,
・EnumWindows
・EnumThreadWindows
などがあります。
a.exeからb.exeを起動するものとして、
a.exeがb.exeを起動する際、a.exeのメインウィンドウのハンドルを引数として渡します。
b.exeは、引数として受け取ったa.exeのメインウィンドウに対して
ユーザ定義のメッセージを投げます。
その際、メインウィンドウを起動した時に取得できるハンドルをパラメータとして渡します。
そうすれば、a.exeはb.exeの持つウィンドウハンドルを取得することが出来ます。
前提が違えば、まったく通用しませんが・・・