python pywin32学习笔记
参考博客链接
https://blog.csdn.net/polyhedronx/article/details/81988948
参考博客链接
https://www.cnblogs.com/zhaobl/p/3326332.html
pyhandle=win32gui.FindWindow(classname,text)
pyhandle windows窗体句柄,int 类型
className 窗体类名
text 窗体标题
win32gui.SetForegroundWindow(pyhandle)
win32gui.ShowWindow(pyhandle, win32con.SW_MAXIMIZE)
窗体置顶
窗体最大化
handle=win32gui.FindWindowEx(pyhandle,None,'Edit',None)
通过父pyhandle窗体句柄找到第一个子窗体或控件
函数原型
pyHandle=FindWindowEx(Parent, ChildAfter , ClassName , WindowName)
ChildAfer int类型,为0表示搜索所有
win32gui.SendMessage(handle, win32con.WM_GETTEXTLENGTH) #向句柄为handle的窗体发送消息得到文本内容大小,阻塞式
函数原型
int = SendMessage(hwnd, message , wparam , lparam )
具体内容请查看windows api
buffer = win32gui.PyMakeBuffer(len)
得到长度为len的缓冲区类型
win32gui.SendMessage(edit_handle, win32con.WM_GETTEXT, len, buffer) # 读取文本
读取控件的文本内容
address, length = win32gui.PyGetBufferAddressAndLen(buffer)
通过buffer得到地址和字符串长度
text = win32gui.PyGetString(address, length)
通过地址和字符串长度得到文本内容
left,top,right,bottom=win32gui.GetClientRect(pyhandle)
得到窗体的左,顶,右 ,底的坐标
import win32gui
win32api.keybd_event(key, 0, 0, 0)
发送键盘消息,key为键值
import win32api
win32api.SetCursorPos([width, height])
设置鼠标在屏幕中的坐标
import win32api,win32con
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
鼠标左键单击
import win32api,win32con
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
鼠标右键单击
import win32gui
hwndChildList = []
win32gui.EnumChildWindows(parent, lambda hwnd, param: param.append(hwnd), hwndChildList)
得到parent窗体下所有的窗体和控件句柄
import win32api,win32con
win32api.keybd_event(key, 0, win32con.KEYEVENTF_KEYUP, 0)
key int类型,让按下的键抬起来
import win32gui,win32con
win32gui.SendMessage(handle,win32con.WM_SETTEXT,0,text)
设置控件文本内容
import win32gui
win32gui.GetDlgItemText(pyhandle,dlgItemId)
通过窗体句柄和控件id得到控件的text
控件的id可以通过spy++或者AutoIt windows info获取
import win32console,win32gui
cmd_win=win32console.GetConsoleWindow()
if cmd_win>0:
win32gui.ShowWindow(cmd_win,0) #windows下隐藏python程序运行的黑窗口,cmd命令行窗口
python pywin32学习笔记的更多相关文章
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- Python Click 学习笔记(转)
原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Python Flask学习笔记之模板
Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...
- Python Flask学习笔记之Hello World
Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...
- 获取字段唯一值工具- -ArcPy和Python案例学习笔记
获取字段唯一值工具- -ArcPy和Python案例学习笔记 目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...
- Python高级学习笔记
Python高级学习笔记,此笔记中包含Linux操作系统.Html+CSS+JS.网络协议等. 所有思维导图为本人亲手所画,请勿用于商用. 大哥们,求点赞哦. 第一天笔记:链接 第二天笔记:链接 第三 ...
- Python入门学习笔记4:他人的博客及他人的学习思路
看其他人的学习笔记,可以保证自己不走弯路.并且一举两得,即学知识又学方法! 廖雪峰:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958 ...
- Python 基础学习笔记(超详细版)
1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...
随机推荐
- CDH 下线节点
rm -rf /var/web/com/public 杜绝这种删除方式 停止集群下线的节点 步骤: 1 停止主机上的角色 2 解除授权 3 从集群中删除 4 为了避免数据丢失,必须一台一台的进行,如 ...
- php给每个数组元素加上前缀
比如原数组是 array('1','2','3','4'); 我需要得到的结果 array('aaa1','aaa2','aaa3','aaa4'); 用内置函数如何实现? array_walk() ...
- 扩展BSGS-传送门
很好的讲解:ZigZagK 好的讲解:mjtcn 某个模板:here 模板题: BSGS:ZigZagK的poj2417 exBSGS:ZigZagK的poj3243 — AC_Gibson 一般的板 ...
- (转)Pycharm用鼠标滚轮控制字体大小
转自: Pycharm用鼠标滚轮控制字体大小 - 暗黒骑士 - 博客园 https://www.cnblogs.com/fyknight/p/6937482.html ---------------- ...
- CVE-2017-3248简单复现
我是这样操作的 目标跟windows在一个段,linux是另一个段的,我的虚拟机 windows主机上 `java -cp ysoserial.jar ysoserial.exploit.JRMPLi ...
- -bash: make: command not found
yum -y install gcc automake autoconf libtool make
- Hbase启动的时候出现:[RpcServer.handler=28,port=60000] ipc.RpcServer: RpcServer.handler=28,port=60000: exiting,master.HMasterCommandLine: Master exiting
hadoop 版本:CDH5.02 Hbase 版本:hbase-0.96.1.1-cdh5.0.2 配置文件:hbase-site.xml <configuration> <pro ...
- 终于,Spring 5.0正式发布了!
Spring 5.0都有什么新功能? 1.最低要求支持JDK8+, J2EE 7+. 2.移除了一些包.类及方法. 3.核心功能加强:全面应用jdk8并兼容jdk9等. 4.SpringMVC:支持s ...
- HTML_表单标签
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Mybatis使用Mapper方式CURD
Mybatis 使用Dao代码方式进行增.删.改.查和分页查询. 1.Maven的pom.xml 2.配置文件 2.1.db.properties 2.2.mybatis.xml <?xml v ...