我有一个Internet Explorer页面,它生成了一个弹出窗口。我可以从弹出窗口的句柄中获取父级:
>>> child.handle
15208472
>>> win32gui.GetParent(child.handle)
33230502
但是我无法使用EnumChildWindows
找到孩子的句柄:
>>> win32gui.EnumChildWindows(win32gui.GetParent(child.handle), lambda hwnd,p: child_handles.append(hwnd), None)
>>> len(child_handles)
39
>>> child.handle in child_handles
False
我也以递归的方式完成了这项任务(让所有孩子的孩子都得到了)并且仍然找不到孩子的手柄。为什么会出现这种情况?
答案 0 :(得分:2)
弹出窗口不是子窗口,因此无法使用EnumChildWindows
进行枚举。
当您调用win32gui.GetParent
时,您实际上获得了弹出窗口的“所有者”窗口,但“所有者”和“父级”是两个不同的东西。有关更多信息,请参阅MSDN entry。