如何从窗口获取文本?

1 投票
1 回答
1418 浏览
提问于 2025-04-16 08:26

这是我的函数:

def getEditText(hwnd):
    result = []
    bufferlength = struct.pack('i', 255)
    linecount = win32gui.SendMessage(hwnd, win32con.EM_GETLINECOUNT, 0, 0)
    print"--- linecount :",linecount

    for line in range(linecount):
        linetext = bufferlength + "".ljust(253)        
        linelength = win32gui.SendMessage(hwnd, win32con.EM_GETLINE, line, linetext)
 myLigne=linetext[:linelength] 
 print"  ",myLigne
        result.append(myLigne)
    return result
resultat=getEditText(hwmdTexte)

我想从一个小部件(widget)中获取文本,但这不管用。 我的应用程序中的小部件有好几行内容,但我却显示行数为0,自然也就没有文本了…… 你能帮我一下吗?

1 个回答

0

谢谢你的回答。我刚刚试了 def

GetText(hwnd):
    buf_size = 1 + win32gui.SendMessage(hwnd, win32con.WM_GETTEXTLENGTH, 0, 0)
    buffer = win32gui.PyMakeBuffer(buf_size)
    win32gui.SendMessage(hwnd, win32con.WM_GETTEXT, buf_size, buffer)
    return buffer[:buf_size]    

但是这个方法并没有获取到我小部件里的文本。这个函数返回的是NUL...

撰写回答