当前位置:   article > 正文

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

python获取win元素文本
  1. import win32api, win32gui, win32con
  2. # 获得父容器
  3. pHwnd = win32gui.FindWindow('WTWindow', '验证码识别')
  4. # 获取子容器,识别结果输入框
  5. edtextHwnd = win32gui.FindWindowEx(pHwnd, None, 'Edit', '')
  6. buf_size = win32gui.SendMessage(edtextHwnd, win32con.WM_GETTEXTLENGTH, 0, 0) + 1 # 要加上截尾的字节
  7. str_buffer = win32gui.PyMakeBuffer(buf_size) # 生成buffer对象
  8. win32api.SendMessage(edtextHwnd, win32con.WM_GETTEXT, buf_size, str_buffer) # 获取buffer
  9. print(str_buffer[:-1])
  10. str = str(str_buffer[:-1]) # 转为字符串
  11. result = str
  12. print(result)

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

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

已解决,具体代码如下

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/137796
推荐阅读
相关标签
  

闽ICP备14008679号