Python:用win32gui.FindWindowEx()找不到句柄

时间:2012-05-10 17:30:01

标签: python win32gui

我正在尝试在对话框中找到“是”按钮的句柄,因此我可以发送消息以单击它。

我得到了对话框,然后我尝试找到按钮,但我总是回到0。

import win32gui

hwnd = win32gui.FindWindow("#32770", "Programs and Features")
# got back the correct handle to the dialog

win32gui.SetForegroundWindow(hwnd)

btnhdl = win32gui.FindWindowEx(hwnd, 0, "Button", "&Yes")
# returns 0

按钮在那里,类和标题似乎没问题。我通过这个验证了它:

def printClasses(childHwnd, lparam):
    if win32gui.GetWindowText(childHwnd) == "&Yes":
        print win32gui.GetClassName(childHwnd), win32gui.GetWindowText(childHwnd)
    return 1

win32gui.EnumChildWindows(hwnd, printClasses, None)
# output: Button &Yes

看起来一切都应该没问题,但为什么它不会返回FindWindowEx的句柄?

由于

1 个答案:

答案 0 :(得分:2)

[来自OP中的评论]也许按钮是孩子的孩子,即孙子? IIRC EnumChildWindow递归枚举FindWindowEx没有。