zoukankan      html  css  js  c++  java
  • pywin32 获取 windows 的窗体内文本框的内容

    用 spy++去确认找到了文本框的句柄了。

    用函数 win32gui.SendMessage 获取不了文本框的文本内容,用 str 类型的参数接收获取的内容的话没有获取到东西,而用 PyBuffer 类型去获取则得到类似于 16 进制的东西。

    希望能找到解决方案。 以下是代码:

     1 from win32gui import *
     2 from win32api import *
     3 from win32process import *
     4 import win32con
     5 
     6 import time
     7 
     8 time.sleep(3)
     9 
    10 # 获取窗体句柄
    11 hWnd = GetForegroundWindow()
    12 print('hownd: ', hWnd)
    13 
    14 FormThreadID = GetCurrentThreadId()
    15 print('FormThreadID: ', FormThreadID)
    16 
    17 CWndThreadID = GetWindowThreadProcessId(hWnd)
    18 print('CWndThreadID: ', CWndThreadID)
    19 
    20 AttachThreadInput(CWndThreadID[0], FormThreadID, True)
    21 
    22 # 获取光标所在文本框句柄
    23 hWnd = GetFocus()
    24 print('hWnd: ', hWnd)
    25 
    26 AttachThreadInput(CWndThreadID[0], FormThreadID, False)
    27 
    28 # SendMessage(hWnd, win32con.WM_SETTEXT, 0, "mextb1860 第一个文本框")
    29 
    30 # 文本框内容长度
    31 length = SendMessage(hWnd, win32con.WM_GETTEXTLENGTH)+1
    32 print('Length: ', length)
    33 
    34 buf = '0'*length
    35 # 生成buffer对象
    36 # buf = PyMakeBuffer(length)
    37 
    38 # 获取文本框内容
    39 print('get: ', SendMessage(hWnd, win32con.WM_GETTEXT, length, buf))
    40 
    41 print('text: ', buf)
  • 相关阅读:
    前端笔试题----JavaScript部分
    前端笔试题----html,css部分
    JS基础--执行环境及作用域
    关于css3 flex布局
    Ceph万兆内网与系统万兆迁移
    从0开始的InfiniBand硬件踩坑过程
    Redis实战与分析
    ceph osd 自动挂载的N种情况
    集群IPtables转发与防火墙
    ceph 常见问题百科全书---luminous安装部署篇
  • 原文地址:https://www.cnblogs.com/jaww/p/9536568.html
Copyright © 2011-2022 走看看