admin 管理员组文章数量: 887032
和大家一起聊聊如何使用python做Windows
一、环境安装
使用python实现来做PC端
pip install pywinauto
二、使用说明
安装好了之后,关于使用说明大家可以参照官方文档上的说明内容翻译如下:
就是说在我们安装好Pywinauto之后,首先要确定哪种可访问性技术(pywinauto的backend)可以用于我们的应用程序,在
Win32 API (backend="win32") 默认backend
MS UI Automation (backend="uia")
如果您不能确定程序到底适用于那种backend,可以借助于GUI对象检查工具来做,常用的检查工具有Inspect.ex,Spy++ 等,这个不做过多介绍,大家自行学习和下载,使用很简单,也非常便捷。
四、快速入门
在安装好环境之后,并且确定了应用程序适用的backend,那么接下来我们就可以使用Pywinauto这个模块来对应用程序进行自动化操作了
1、连接到应用程序这边以window自带的计算器程序作为案例,给大家做讲解
连接应用程序,首先需要用到pywinauto.application.Application()来创建一个应用程序对象,然后再连接到应用程序,有如下两种方法:
方式一:直接通过start方法打开操作的应用程序,
from pywinauto import application
# 方式一:创建应用程序时可以,指定应用程序的合适的backend,start方法中指定启动的应用程序
app = application.Application(backend="uia").start("notepad.exe")
方式二:连接已经打开应用程序,可以通过connect连接到指定的应用程序。
from pywinauto import application
# 方式二:查看要打开的程序进程号,通过process指定进程号连接
app = application.Application().connect(process=19035)
运行以上代码,就会自动打开记事本记事本,如下:
::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::0
2、窗口选择
打开这个窗口之后,我们要操作该窗口的话,那么就的先选中这个窗口,关于窗口的选择有一下几种方式:
# 方式一 :不适用于窗口名为中文的
wind_1 = app.窗口名
# 方式二 :窗口名可以为中文
wind_2 = app["窗口名"]
# 案例使用:选择上面打开的计算器程序窗口
wind_calc = app["无标题 - 记事本"]
3、控件操作
程序窗口中的内容,把它称之为控件,我们要对这个窗口的内容进行操作,就需要选择到对应的控件,
获取所有控件。我们可以通过print_control_identifiers()这个方法,来获取这个窗口下的直接子控件,如下:
app["无标题 - 记事本"].print_control_identifiers()
打印出来的结果如下:
::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::1
上面打印出来的内容分别对应窗口种,选择控件
关于控件选择的方法有好几种,最简单的方法如下:
# 选择控件的方法
wind_calc = app["窗口名"]["控件名"]
# 案例操作:选择编辑窗口
edit = app["无标题 - 记事本"]["Edit"]
内容输入:
在上面选择到编辑窗口之后,我们就可以进行内容输入了,内容输入的方法:type_key():
# 在编辑栏种输入内容
edit.type_keys("柠檬班")
edit.type_keys("python自动化")
edit.type_keys("musen")
运行结果如下:
::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::2
4、键盘操作
输入完上述内容之后,接下来我们要修改编辑框中的内容,
通过键盘完成以下操作:全选(ctrl+A) 复制(ctrl+C) 粘贴(ctrl+V),
pywinauto.keyboard.send_key
pywinauto模拟操作键盘,需要使用到 pywinauto.keyboard.send_keys这个方法:
# 导入模块
from pywinauto.keyboard import send_keys
# 全选(ctrl+A)
send_keys("^a")
# 复制(ctrl+C)
send_keys("^c")
# 粘贴(ctrl+V)
send_keys("^v")
# 回车键
send_keys("{VK_RETURN}")
# 粘贴(ctrl+V)
send_keys("^v")
常见的按键操作
字母按键用按键小写字母表示
常用的一些按键
ESC键:VK_ESCAPE
回车键:VK_RETURN
TAB键:VK_TAB
Shift键:VK_SHIFT
Ctrl键:VK_CONTROL
Alt键:VK_MENU
按键修饰符
# 对于一些常用的按键,可以通过修饰符来表示,使用的时候比较方便
"+’: {VK_SHIFT}
"^’: {VK_CONTROL}
"%’: {VK_MENU} Alt键
# 上面:全选(ctrl+A) 复制(ctrl+C) 粘贴(ctrl+V)就使用的是修饰符^来代表ctrl
更多的键盘操作大家可以参考官网文档
5、鼠标操作
pywinauto. mouse
pywinauto操作鼠标,需要导入mouse模块,mouse模块中设置了一系列的鼠标操作事件
鼠标移动:move方法
move(coords=(x轴坐标,y轴坐标))。
缓慢移动鼠标案例。
for i in range(10):
x = 10 * i
y = 10 * i
time.sleep(0.5)
# 移动鼠标
mouse.move(coords=(x, y))
鼠标点击:click
# button指定左击还是右击,coords指定鼠标点击的位置
# 3.1、鼠标单击
# 指定位置,鼠标左击
mouse.click(button="left", coords=(40, 40))
# 指定位置 鼠标右击
# mouse.click(button="right", coords=(100, 200))
# 3.2 鼠标双击
mouse.double_click(button="left", coords=(140, 40))
# 4 按下鼠标:press
# 将属性移动到(140,40)坐标处按下
mouse.press(button="left", coords=(140, 40))
# 5 释放鼠标:repleace
# 将鼠标移动到(300,40)坐标处释放,
mouse.release(button="left", coords=(300, 40))
# 6、右键单击指定坐标
mouse.right_click(coords=(400, 400))
# 7、鼠标中键单击指定坐标(很少用的到)
mouse.wheel_click(coords=(400, 400))
# 8 滚动鼠标
# coords:指定鼠标的坐标位置。
# wheel_dist指定鼠标滚轮滑动的次数,正数往上,负数往下。
mouse.scroll(coords=(1200,300),wheel_dist=-3)
版权声明:本文标题:python操作windows窗口程序-Python 实现 Windows 程序自动化 :pywinauto 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726531993h979699.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论