Jes*_*dge 9 python winapi win32gui
我正试图从弹出窗口中读取文本.

标题总是一样的.我已经设法识别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)
Run Code Online (Sandbox Code Playgroud)
这是工作版本:
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)
Run Code Online (Sandbox Code Playgroud)
如果它包含在窗口控件中,您将只能以编程方式读取该文本.您可以使用Spy ++轻松检查.许多GUI框架不对其子控件使用窗口控件,或仅对某些子窗口使用窗口控件.
如果它是一个窗口控件,那么你可以通过调用GetWindow()和遍历子结构来识别它(显然你需要使用win32gui等价物).
我无权访问您正在使用的框架或错误对话框,因此我只能笼统地说出您想要的内容。
您需要FindWindowEx函数,并使用它来查找类名称为“static”(或任何控件的类名称)的控件。我想这将是一行:
control = win32gui.FindWindowEx(window, 0, "Static", 0)
Run Code Online (Sandbox Code Playgroud)
这将返回控件的句柄,然后您可以对其使用 GetWindowText 来获取文本。
| 归档时间: |
|
| 查看次数: |
6647 次 |
| 最近记录: |