我想获取一个窗口的状态栏文字!我正在使用 win32gui.GetWindowText
,但无法获取状态栏文本。我刚刚得到标题!如何获取状态栏文本?
#coding=utf-8
import win32gui
# get main window handle
f = win32gui.FindWindow("TMDIForm",None)
print f,win32gui.GetWindowText(f)
#get child window handle of main window
ex=win32gui.FindWindowEx(f,None,"TPanel",None)
#get child window handle of ex window
exx=win32gui.FindWindowEx(ex,None,"TStatusBar",None)
print exx,win32gui.GetWindowText(exx)
最佳答案
以下应该有所帮助,您不能在状态栏上使用 GetWindowText
。状态栏通常由多个子项组成。要访问这些使用需要使用 SendMessage
和 SB_GETTEXT
。
#coding=utf-8
import win32gui
import win32api
import win32con
# get main window handle
f = win32gui.FindWindow("TMDIForm",None)
print f,win32gui.GetWindowText(f)
#get child window handle of main window
ex=win32gui.FindWindowEx(f,None,"TPanel",None)
#get child window handle of ex window
exx=win32gui.FindWindowEx(ex,None,"TStatusBar",None)
SB_GETTEXT = win32con.WM_USER + 2
SB_GETTEXTLENGTH = win32con.WM_USER + 3
sub_item = 0
sb_retcode = win32api.SendMessage(exx, SB_GETTEXTLENGTH, sub_item, 0)
sb_type = sb_retcode & 0xFFFF
sb_length = (sb_retcode >> 16) & 0xFFFF
text_buffer = win32gui.PyMakeBuffer(1 + sb_length)
sb_retcode = win32api.SendMessage(exx, SB_GETTEXT, sub_item, text_buffer)
print text_buffer
我无法对此进行测试,因为我找不到合适的窗口。
关于python - win32gui:如何获取窗口的状态栏文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32680449/