如何在Process Explorer(sysinternals)中提供“查找窗口的过程”功能

时间:2010-08-28 17:01:03

标签: windows debugging windows-process

我正在开发一个用于调试目的的应用程序。我希望用户能够使用鼠标选择要调试的进程。 Process Explorer通过“查找窗口的进程”功能完成了这项工作。我无法弄清楚它是如何做到的?有谁知道提供此功能的Window的API?

谢谢,格兰特

2 个答案:

答案 0 :(得分:1)

我没有尝试过这个,但它应该有效:使用WindowFromPoint获取窗口句柄,然后使用GetWindowThreadProcessId获取创建窗口的进程的ID。

或者,您可以使用EnumWindows枚举屏幕上的所有顶级窗口,按某些条件(例如位置)过滤它们,然后使用GetWindowThreadProcessId获取进程ID。

答案 1 :(得分:0)

如果我理解正确,您希望枚举所有Windows并在找到相关目标窗口时执行某些操作。您可以通过枚举所有当前windows然后在用户位于相关窗口上时执行某些操作来执行此操作。您必须将该窗口句柄与process相关联。

这不是一项简单的任务,因为它需要经历很多箍但是有可能,只需将所有碎片放在一起。