已知进程句柄,如何知道此进程的主窗口句柄,在此说明两种方法:
- 调用FindWindow(),前提是必须知道该进程中窗口类名和窗口名,返回后的句柄可以通过IsWindow()函数来验证是否是有效的窗口句柄.
1 |
|
2.先枚举全部窗口,再枚举回调函数中调用GetWindowThreadProcessID()得到窗口得进程ID,再与以前得到得ID比较.如果不一致,不处理,若一致,循环调用GetParent()一直到返回NULL, 最后得hwnd即为顶层窗口句柄
1 | BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam ) |