Как предоставить функцию «Процесс поиска окна» в процессе Explorer (Sysinternals)

StackOverflow https://stackoverflow.com/questions/3591620

Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top