我正在尝试从弹出窗口中读取文本。

标题总是一样的。我已经设法识别了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来获取文本。

09-15 20:47