Как мне предоставить функцию «Найти окно процесса» в Process Explorer (sysinternals) - PullRequest
0 голосов
/ 28 августа 2010

Я разрабатываю приложение для отладки.Я хочу, чтобы пользователь мог выбирать процесс для отладки с помощью мыши.Process Explorer отлично справляется с этой задачей с помощью функции «Найти процесс в окне».Что я не могу понять, так это как это сделать?Кто-нибудь знает API Windows, который обеспечивает эту функциональность?

Спасибо, Грант

Ответы [ 2 ]

1 голос
/ 28 августа 2010

Я не пробовал это, но оно должно работать: используйте WindowFromPoint, чтобы получить дескриптор окна, затем используйте GetWindowThreadProcessId, чтобы получить идентификатор процесса, который создал окно.

Альтернативно,Вы можете использовать EnumWindows для перечисления всех окон верхнего уровня на экране, фильтровать их по некоторым критериям (например, по позиции), а затем использовать GetWindowThreadProcessId для получения идентификаторов процесса.

0 голосов
/ 28 августа 2010

Если я вас правильно понимаю, вы хотите перечислить все Windows и выполнить какое-то действие, когда будет найдено нужное целевое окно. Вы можете сделать это, перечислив все текущие windows и затем выполнив какое-то действие, когда пользователь находится над рассматриваемым окном. Вам нужно будет связать этот дескриптор окна с процессом .

Это не простая задача, так как требует прохождения большого количества обручей, но это возможно, просто нужно собрать все кусочки вместе.

...