Python 如何获取每个打开窗口的名称列表?

Python 如何获取每个打开窗口的名称列表?,python,win32gui,pywinauto,Python,Win32gui,Pywinauto,如何获取所有打开窗口的名称/文本列表 我试过pywinauto: pywinauto.findwindows.find\u窗口(title\u re=“*”) 但是将*用作正则表达式会导致错误 我试过win32gui: 它有 win32gui.GetWindowText(win32gui.GetForegroundWindow()) 但在它的文档中,我找不到getAllWindows或返回所有打开的hwnd句柄名称/文本的东西: 您可以与以下内容一起使用: 输出: 0x20fa4 bet -

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

我试过pywinauto:

pywinauto.findwindows.find\u窗口(title\u re=“*”)
但是将
*
用作正则表达式会导致错误

我试过win32gui: 它有

win32gui.GetWindowText(win32gui.GetForegroundWindow())

但在它的文档中,我找不到getAllWindows或返回所有打开的hwnd句柄名称/文本的东西:

您可以与以下内容一起使用:


输出:

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
...

如果您想使用pywinauto,则更容易:

from pywinauto import Desktop

windows = Desktop(backend="uia").windows()
print([w.window_text() for w in windows])
这甚至适用于WPF应用程序。使用
win32gui.EnumWindows
无法访问WPF或UWP应用程序的文本。pywinauto在
桌面(backend=“win32”)
中使用
win32gui.EnumWindows
backend=“uia”
使用
UIAutomationCore.dll
中更新的API


有关pywinauto中后端的更多详细信息,请参见。

查看EnumWindows
from pywinauto import Desktop

windows = Desktop(backend="uia").windows()
print([w.window_text() for w in windows])