デバッグ用のアプリケーションを開発しています。ユーザーがマウスを使用してデバッグするプロセスを選択できるようにしたいと思います。Process Explorerは、「ウィンドウのプロセスの検索」機能を使用して、これをうまく処理します。私が理解できないのは、これがどのように行われるのかということです。この機能を提供するWindowのAPIを知っている人はいますか?
ありがとう、グラント
デバッグ用のアプリケーションを開発しています。ユーザーがマウスを使用してデバッグするプロセスを選択できるようにしたいと思います。Process Explorerは、「ウィンドウのプロセスの検索」機能を使用して、これをうまく処理します。私が理解できないのは、これがどのように行われるのかということです。この機能を提供するWindowのAPIを知っている人はいますか?
ありがとう、グラント
私はこれを試していませんが、機能するはずです。を使用WindowFromPoint
してウィンドウハンドルを取得してから、を使用GetWindowThreadProcessId
してウィンドウを作成したプロセスのIDを取得します。
または、を使用EnumWindows
して画面上のすべてのトップレベルウィンドウを列挙し、それらをいくつかの基準(位置など)でフィルタリングしてから、を使用GetWindowThreadProcessId
してプロセスIDを取得することもできます。
私があなたを正しく理解しているなら、あなたはすべてのウィンドウを列挙し、問題のターゲットウィンドウが見つかったときに何らかのアクションを実行しようとしています。これを行うには、現在のすべてのウィンドウを列挙し、ユーザーが問題のウィンドウの上にいるときに何らかのアクションを実行します。そのウィンドウハンドルをプロセスに関連付ける必要があります。
これは、多くのフープを実行する必要があるため、単純な作業ではありませんが、すべての要素をまとめるだけで可能です。