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)
  • 相关阅读:
    stl_heap.h
    stl_tree.h
    stl_set.h
    stl_multiset.h
    ant:如何用ant将web project打包成war包
    将java project打包成jar包,web project 打包成war包的几种演示
    windows的各种扩展名详解
    图解教你如何使用ANT打包java程序
    使用apache mail发送邮件错误解决办法
    java虚拟机的运行原理
  • 原文地址:https://www.cnblogs.com/jaww/p/9536568.html
Copyright © 2011-2022 走看看