プロセスIDからスレッドIDを取得するには?


ポント  2004-07-20 21:33:47  No: 84687  IP: [192.*.*.*]

毎々この掲示板には大変お世話になっています。

過去ログを見たのですが、「プロセスID→スレッドID→ウィンドウハンドル」の順に取得できるとありました。しかし、皆さん頭がよくて具体的な取得方法に至る前に理解され、既に解決されていました。

私には、プロセスIDから、どのようにウィンドウハンドルを取得したらよいのか方法がわかりませんでした。どなたか、ご教授お願いいたします。

編集 削除
たらこ  2004-07-21 17:59:00  No: 84688  IP: [192.*.*.*]

EnumWindows関数で、プロセスIDと一致するトップレベルの
ウィンドウハンドルを検索することになると思います。
実際は、EnumWindowsのコールバック関数内で、
GetWindowThreadProcessId関数を用いて、列挙したウィンドウ
ハンドルからプロセスIDを取得し、それが指定のプロセスIDと
同じであるかチェックすればいいと思います。
探せば、いくらでもサンプルありますよ。

編集 削除
ポント  2004-07-21 22:48:38  No: 84689  IP: [192.*.*.*]

EnumWindows関数を呼び出してプロセスIDを取得することができました。ありがとうございました。

十分満足なのですが、プロセスIDから直接ウィンドウハンドルは取得ができないものなのでしょうか。ウィンドウハンドルの列挙以外に方法があれば、ぜひご教授お願いします。

編集 削除