我正在尝试从弹出窗口中读取文本。
标题总是一样的。我已经设法识别了hwnd并使用下面的代码获得了标题,但是我不知道如何读取内容。
import time
import win32gui, win32con
windows = []
def _MyCallback( hwnd, extra ):
extra.append(hwnd)
win32gui.EnumWindows(_MyCallback, windows)
while True:
window = win32gui.GetForegroundWindow()
title = win32gui.GetWindowText(window)
if title == 'Errors occurred': print 'error window'
time.sleep(1)
这是工作版本:
import time
import win32gui
while True:
window = win32gui.GetForegroundWindow()
title = win32gui.GetWindowText(window)
if title == 'Errors occurred':
control = win32gui.FindWindowEx(window, 0, "static", None)
print 'text: ', win32gui.GetWindowText(control)
time.sleep(1)
最佳答案
我无权访问您正在使用的框架或错误对话框,因此我只能大体上说出您想要的内容。
您需要FindWindowEx函数,并使用它来查找其类名称为“static”(或该控件的任何类名称)的控件。我想这将是一行:
control = win32gui.FindWindowEx(window, 0, "Static", 0)
这将把句柄返回到控件,然后可以在该控件上使用GetWindowText来获取文本。