有没有办法,或者什么是"接受"的方式让所有窗口在当前进程下运行?

fla*_*404 1 c++ windows visual-studio-2008

从另一个应用程序的进程地址空间,您将如何获取它正在使用/显示的每个窗口的句柄?

我知道你可以获得流程中运行的所有当前线程的快照http://msdn.microsoft.com/en-us/library/ms686701(v=vs.85).aspx但是我想知道是否有方式,使用THREAD ID然后获得一个可以使用IsWindow(hwnd)进行测试的hwnd值,或者逻辑上如果你能得到一个hwnd,你不知道你已经有了一个值窗口吗?但我想知道这是否有效或是否确实是一种明智的做法?

谢谢.

Mic*_*ael 5

您可以使用EnumThreadWindows枚举与线程关联的所有非子窗口,然后使用EnumChildWindows获取其所有子窗口.

或者,您可以使用EnumWindows获取桌面上的所有顶级窗口,并使用GetWindowThreadProcessId仅筛选与该进程关联的窗口.