1.如何利用句柄操作windows窗体

首先,获得窗体的句柄  win32api.FindWindows()

第二,获得窗体中控件的id号,spy++

第三,根据控件的ID获得控件的句柄(hwnd)  GetDlgItem(hwnd,loginID)

最后,利用控件句柄进行操作

python可以通过win32api轻松获取控件的属性值

通过标签找到主窗口句柄,然后通过主句柄获取下属控件句柄

#-*- coding: utf-8 -*-  ##设置编码方式

import win32api,win32gui,win32con

label = 'tt' #此处假设主窗口名为tt

hld = win32gui.FindWindow(None, label)

if hld > 0:

dlg = win32api.FindWindowEx(hld, None, 'Edit', None)#获取hld下第一个为edit控件的句柄

buffer = '0' *50

len = win32gui.SendMessage(dlg, win32con.WM_GETTEXTLENGTH)+1 #获取edit控件文本长度

win32gui.SendMessage(dlg, win32con.WM_GETTEXT, len, buffer) #读取文本

print buffer[:len-1]

#虚拟鼠标点击按钮(或者回车)

btnhld = win32api.FindWindowEx(hld, None,'Button', None)

# win32gui.PostMessage(btnhld, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)

# win32gui.PostMessage(btnhld, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

win32gui.PostMessage(btnhld, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, 0)

win32gui.PostMessage(btnhld, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, 0)

#获取显示器屏幕大小

width = win32api.GetSystemMetrics(win32con.SM_CXSCREEN)

height = win32api.GetSystemMetrics(win32con.SM_CYSCREEN)

#点击窗口button

w=win32ui.FindWindow(clsname,windowtitle)

b=w.GetDlgItem(窗口id)

b.postMessage(win32con.BM_CLICK)

#关闭窗体

import win32ui

import win32con

wnd=win32ui.FindWindow(classname,None)

wnd.SendMessage(win32con.WM_CLOSE)  成功!

import win32ui

w=win32ui.FindWindow(classname,窗体title)

print w.GetDlgItemText(0xFFFF)  # 获得弹窗里的消息文字

最小化窗体

w=win32gui.FindWindow()

win32gui.CloseWindow(w)

浏览器密码控件操作

# coding=utf-8

import win32gui

import win32api

import win32con

def CallBack(hwnd, hwnds):

if win32gui.GetClassName(hwnd) == 'Edit':

hwnds[win32gui.GetClassName(hwnd)] = hwnd

return True

w1hd = win32gui.FindWindow(u'IEFrame', None)

print '%x' %w1hd

# w2hd = win32gui.FindWindowEx(w1hd,0,u'TabWindowClass', None)

# print '%x' %w2hd

hwndChildList = {}

win32gui.EnumChildWindows(w1hd, CallBack, hwndChildList)

for k,v in hwndChildList.items():

print '%s %x' %(k,v)

#win32api.SendMessage(v, win32con.WM_CHAR, ord('a'), 0)

#t1 =win32gui.GetDlgItem(v,1)

len1 = win32gui.SendMessage(v, win32con.WM_GETTEXTLENGTH)+1

buffer = '0' *50

win32gui.SendMessage(v, win32con.WM_GETTEXT, len1, buffer)

print len1

print buffer[:len1-1]

win32gui.SendMessage(v,win32con.WM_SETTEXT,None,'902723')

python编写界面遍历_python和pywin32实现窗口查找、遍历和点击相关推荐

  1. python编写界面遍历_python和pywin32实现窗口查找、遍历和点击的示例代码

    Pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量.接口.线程以及COM机制等等. 1.通过类名和标题查找窗口句柄,并获得窗口位置和 ...

  2. python编写木马攻击_Python编写简易木马程序

    Python编写简易木马程序 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 + ...

  3. python编写数学公式大全_python - 用python编写数学公式 - 堆栈内存溢出

    我正在用python编写此公式. 请查看图片我正在使用以下代码. 它总是会出错. import math import matplotlib matplotlib.use('TkAgg') from ...

  4. python编写脚本教程_python编写一个会算账的脚本的示例代码

    python算账脚本 1.假如小明卡里有10000元去商场买东西发现钱不够又向父母借了5000账单如下 2.以下脚本就能实现上面的运算 from time import strftime import ...

  5. 用python编程一个图形_Python的图形化窗口编程(1)

    python能做的东西太多,以致大多数人在学习的过程中出现了迷茫.但是,无论学习哪个方向,都比原地观望要好. 我们今天学习python的图形界面制作,python的界面制作有很多. 很多人吐槽pyth ...

  6. python交互界面制作_Python 如何编写交互界面?_后端开发

    c语言怎么实现三个数从小到大输出?_后端开发 方法:1.使用if语句对数字x与y进行比较,若x>y则交换x和y的值:2.使用if对x与z进行比较,若x>z则交换x和z的值:3.使用if对y ...

  7. python编写一个名片_python名片 项目

    ---恢复内容开始--- 综合应用 -- 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ...

  8. python编写ATM类_Python中编写类的各种技巧和方法

    有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling).你可以把它当作一个教程, ...

  9. linux python 图形界面开发_python在linux制作图形界面(snack)

    snack是一个用于在linux制作图形界面(GUI)的模块,该模块由c编写,而且redhat的系统都自带这个模块. 1.获取模块 虽然redhat系统会自带这个模块,但是直接去import snac ...

最新文章

  1. linux 中的source命令
  2. WCF添加服务失败。服务元数据可能无法访问。请确保服务正在运行并且正在公开元数据。...
  3. (前端)html与css,css 4 、继承性和层叠性
  4. python从视频中提取音频_提取视频中的音频——python三行程序搞定!
  5. NoSql数据库:Cassandra,Mongo,Redis数据库比较
  6. socket阻塞与非阻塞,同步与异步
  7. iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
  8. 117_PowerQuery使用ODBC访问带密码的Access
  9. java 获取服务器IP地址及MAC地址
  10. Python实现空间直角坐标转高斯克吕格平面坐标
  11. 为什么要写博客?怎么写博客?
  12. 思维导向树6级节点_8种常见的思维导图
  13. 推荐一款可自创外星文字的工具
  14. 【21天学习挑战赛】哪吒邀你参加Java研讨班
  15. 蓝牙锁定计算机,win7怎么设置蓝牙加密狗|win7蓝牙加密狗的使用方法
  16. webrtc QOS方法四.2(拥塞算法学习)
  17. java web实现套打,web 如何实现精准打印
  18. 【CCM-SLAM论文阅读笔记】
  19. Word 2019 自带公式快速编号方法
  20. C++ 中dynamic_cast的使用方法

热门文章

  1. php可以做门禁卡系统吗_PHP研发工程师入门篇:论PHP可以做什么?
  2. Oracle11g 修改数据库编码(UTF-8修改为GBK)
  3. merge k sorted lists java_LeetCode 第23题 Merge k Sorted Lists【分而治之】【最小堆】(Java)...
  4. 个人计算机上常用的操作系统,个人计算机常用的输出设备 操作系统的发展史(3)...
  5. Hyper-V 和Ubuntu Server 16.04 配置静态IP
  6. Mysql 5.7 json
  7. 神器面世:让你快速在 iOS 设备上安装 Windows、Linux 等操作系统!
  8. 带你玩转Pandas
  9. centos标准分区调整大小_去繁化简解决CentOS下调整home和根分区大小的方法
  10. ping32终端安全管理系统_IPguard与Ping32文件操作记录对比