在 python 中枚举 child windows?

Enumerating child windows in python?

我已经使用 C++ 涉猎了一年左右,并决定尝试使用 python,因为它具有更简单的语法并且会在我仍在学习的同时提高工作效率(我认为!) .我正在尝试从 Windows.

中的桌面应用程序的 parent window 中枚举所有 child windows
import win32ui

def WindowExists(windowname):
    try:
        win32ui.FindWindow(None, windowname)

    except win32ui.error:
        return False
    else:
        return True

appFind = "Test Application"

if WindowExists(appFind):
    print ("Program is running")
    hwnd = win32ui.FindWindow(None, appFind)

else:
    print ("Program is not running")

到目前为止,我可以毫无问题地识别应用程序,但我想知道我的 hwnd 分配是否像我认为的那样在 c++ 环境中工作,所以我可以将我的 hwnd 分配传递给枚举childwindows。不过,我不完全确定我是如何从这里得到 children 的。

我遇到的另一个问题是,除了使用应用程序的标题外,我还可以如何使用句柄?例如,如果句柄类似于 testapplication 的 00130903。我记得有几个月我在 C++ 中弄乱了类似的东西,我认为你可以使用 x 来替换句柄上的第一组零(或类似的东西),但老实说我记不太清了,所以希望你们能求助!

编辑 -

TypeError: object 不是 PyHANDLE object。

我认为我的假设是正确的,我没有正确分配一个名为 hwnd 的正确句柄,这是我在尝试使用 enumchldwindows 或 win32con.WM_GETTEXT 时遇到的错误,任何示例如果能正确设置标题和句柄句柄,我们将不胜感激!

hwnd = win32ui.FindWindow(None, appFind) ,用于验证 windows 存在

hwnd = win32gui.FindWindow(None, appFind),努力让我使用手柄!,生活我们一起学习!