如何获得所有打开的窗口的名称/文本的列表?

我尝试了pywinauto:
pywinauto.findwindows.find_windows(title_re="*")但是使用*作为正则表达式会引发错误

我尝试了win32gui:
它有
win32gui.GetWindowText(win32gui.GetForegroundWindow())
但是在它的文档中,我找不到getAllWindows或返回打开的hwnd句柄的所有名称/文本的东西:
http://timgolden.me.uk/pywin32-docs/contents.html

最佳答案

您可以将 win32gui.GetWindowText( hwnd ) win32gui.EnumWindows 一起使用:

import win32gui

def winEnumHandler( hwnd, ctx ):
    if win32gui.IsWindowVisible( hwnd ):
        print (hex(hwnd), win32gui.GetWindowText( hwnd ))

win32gui.EnumWindows( winEnumHandler, None )

输出:
0x20fa4 bet - [C:\Users\X\Desktop\] - [bet] - L:\stack\stack_enum_windows.py - IntelliJ IDEA 2017.2.5
0x1932478 13. vnc 888
0x30c27b8 Telegram (55)
0x40aba MobaXterm
0x10a0a IntelliJIDEALicenseServer_windows_amd64.exe - Shortcut
...

关于python - 如何获取每个打开的窗口的名称列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55547940/

10-14 19:01