如何从窗口获取文本?

时间:2010-12-12 22:25:11

标签: python windows

这是我的功能:

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)

我想从小部件中获取文本,但这不起作用。 我的应用程序的小部件中有几行,但我有linecount = 0,当然没有文本... 你能帮我吗?

1 个答案:

答案 0 :(得分: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 ...