gpt4 book ai didi

Python:如何从另一个程序窗口获取文本标签?

转载 作者:太空狗 更新时间:2023-10-30 02:21:43 26 4
gpt4 key购买 nike

我想使用 Python 从另一个程序中读取文本标签。我想我必须使用 WM_GETTEXT,但我不知道如何使用,而且我在互联网上找不到任何东西。我的程序获取事件窗口,但不读取文本标签。所以我希望有人能帮助我。

编辑:我添加了缓冲区和 SendMessage 部分。例如,我可以从编辑器中获取文本,但不能从我试图从中获取文本标签的程序中获取。

我有以下代码,是我在 stackoverflow 上找到的(Get text from popup window):

import win32gui
import time

while True:
window = win32gui.GetForegroundWindow()
title = win32gui.GetWindowText(window)
if 'GLS Exportdatei' in title:
control = win32gui.FindWindowEx(window, 0, 'static', None)
buffer = win32gui.PyMakeBuffer(20)
length = win32gui.SendMessage(control, win32con.WM_GETTEXT, 20, buffer)

result = buffer[:length]
print result
time.sleep(1)

最佳答案

如果您窗口的文本超过 20 个字符,那么您创建的缓冲区太小。尝试将其扩展到超出您可能需要的范围:

buffer = win32gui.PyMakeBuffer(255)
length = win32gui.SendMessage(control, win32con.WM_GETTEXT, 255, buffer)

如果您想访问主窗口中的控件,请使用 EnumChildWindows , 传递父窗口的句柄。您可能需要递归地执行此操作。

关于Python:如何从另一个程序窗口获取文本标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14500026/

26 4 0