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

标签 python win32gui

我想获取一个窗口的状态栏文字!我正在使用 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。状态栏通常由多个子项组成。要访问这些使用需要使用 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

我无法对此进行测试,因为我找不到合适的窗口。

关于python - win32gui:如何获取窗口的状态栏文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32680449/

相关文章:

python - 将 HTML 实体转换为 Python 表情符号

python - 从弹出窗口获取文本

node.js - GetCursorPos Node FFI - 如何通过 ref 获取指针返回

python - 从背景窗口获取像素颜色

python - pandas - 读取文件之前/之后不同的数据类型列

Python 字典排序

python - 有没有办法更改 Anaconda/Spyder 中的配置文件目录?

python - 如何比较 python 中两个 CSV 的列?

c++ - 从 WinApi 中的可编辑文本字段读取数据

Python win32gui 滚动 Internet Explorer/Firefox/Web 浏览器窗口