# 得到Edit编辑框中的文本
def get_edit_text(hEdit):
# 获取识别结果中输入框文本
length = win32gui.SendMessage(hEdit, win32con.WM_GETTEXTLENGTH) + 1
buf = win32gui.PyMakeBuffer(length) # PyMakeBuffer python会报警,要用PyGetMemory替代
#发送获取文本请求
win32api.SendMessage(hEdit, win32con.WM_GETTEXT, length, buf)
#下面应该是将内存读取文本
address, length = win32gui.PyGetBufferAddressAndLen(buf[:-1])
text = win32gui.PyGetString(address, length)
return text
报警如下,看不懂,就是让用PyGetMemory 替代 PyMakeBuffer 。
PendingDeprecationWarning: PyMakeBuffer is deprecated; use PyGetMemory instead
不知道是不是这原因,我的ipython还终止响应退出了
PyGetMemory 的资料网上找了2天没找到,难死我这个编程小白了
试来试去,终于成了
# 得到Edit编辑框中的文本
def get_edit_text(hEdit):
# 获取识别结果中输入框文本
length = win32gui.SendMessage(hEdit, win32con.WM_GETTEXTLENGTH) + 1
sss = '0' * length # 以创建字符的方式,创建内存空间
lParma = id(sss) # 字符串的内存地址
buf = win32gui.PyGetMemory(lParma, length)
#发送获取文本请求
win32api.SendMessage(hEdit, win32con.WM_GETTEXT, length, buf)
#下面应该是将内存读取文本
address, length = win32gui.PyGetBufferAddressAndLen(buf[:-1])
text = win32gui.PyGetString(address, length)
return text
我太难了。
不行,ipython还是终止运行。内存操作不当?