win32gui:如何获取窗口的状态栏文本?

2024-10-02 02:36:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到一个窗口的状态栏文本!我正在使用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)

Tags: of文本nonechildgetmainwindowex
1条回答
网友
1楼 · 发布于 2024-10-02 02:36:31

以下内容应该会有所帮助,您不能在状态栏上使用GetWindowText。状态栏通常由多个子项组成。要访问这些,使用需要使用SendMessageSB_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

我没能测试这个,因为我找不到合适的窗口。在

相关问题 更多 >

    热门问题