已解决,pywin32如何获取window窗口的edit里面的文本

import win32api, win32gui, win32con

# 获得父容器
pHwnd = win32gui.FindWindow('WTWindow', '验证码识别')

# 获取子容器,识别结果输入框
edtextHwnd = win32gui.FindWindowEx(pHwnd, None, 'Edit', '')

buf_size = win32gui.SendMessage(edtextHwnd, win32con.WM_GETTEXTLENGTH, 0, 0) + 1  # 要加上截尾的字节
str_buffer = win32gui.PyMakeBuffer(buf_size)  # 生成buffer对象
win32api.SendMessage(edtextHwnd, win32con.WM_GETTEXT, buf_size, str_buffer)  # 获取buffer
print(str_buffer[:-1])
str = str(str_buffer[:-1])  # 转为字符串
result = str
print(result)

代码片段是上面这个,输出的结果是下面这个,请问怎么样才能拿到正确的文本

<memory at 0x000001E2E9154B88>
<memory at 0x000001E2E9154B88>

已解决,具体代码如下

# 获取识别结果中输入框文本
length = win32gui.SendMessage(edtextHwnd, win32con.WM_GETTEXTLENGTH)+1
buf = win32gui.PyMakeBuffer(length)
#发送获取文本请求
win32api.SendMessage(edtextHwnd, win32con.WM_GETTEXT, length, buf)
#下面应该是将内存读取文本
address, length = win32gui.PyGetBufferAddressAndLen(buf[:-1])
text = win32gui.PyGetString(address, length)

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值