目标:
Python可以通过pywinauto+lackey模块自动执行有窗口的软件安装包去安装软件。那么具体是如何实现的呢?下面一起来看看吧!
流程:
1、安装pyautorun
首先确保pywinauto及lackey模块已经安装,在CMD(以管理员身份运行)中执行pip install --upgrade pywinauto,系统将会自动安装pywinauto模块。
安装pywinauto完成后,以管理员身份运行pycharm(注意:如果不一管理员身份运行,后续debug的时候会报权限不足的错误)
2、安装lackey
方法一:先通过pip install lackey来安装。(方法一若不成功使用方法二)
方法二:直接下载Lackey-0.7.3-py3-none-any.whl安装文件,通过pip install Lackey-0.7.3-py3-none-any.whl来安装。下载地址:https://pan.baidu.com/s/1MDJ8KoLl_sWPSnsxj8wfqg
提取码:rgml
方法三:通过镜像安装pip install lackey -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
3、实现自动安装软件
配合使用pywinauto来打开应用程序后,保存好定位的元素,通过定位元素选定操作内容。
接下来我们以安装向日葵远程控制软件为例,做演示。
1、先将安装窗口上所有控件先截图保存好到固定目录中,例如可以在项目目录下新建一个photo的文件夹,将控件截图都放置在这个文件夹中。
2、写代码
import pywinauto import time import lackey path_SunloginClient = r'C:\Users\vision\Desktop\pythonProject\SunloginClient_10.5.0.29613_X64.exe' app = pywinauto.Application().start(path_SunloginClient) lackey.click('photo/SunloginClientInstall.PNG') time.sleep(8) lackey.click('photo/SunloginClientClose.PNG') time.sleep(4) lackey.click('photo/SunloginClientNext.PNG') time.sleep(1) lackey.click('photo/SunloginClientNext.PNG') time.sleep(1) lackey.click('photo/SunloginClientClose.PNG') time.sleep(1)
path_SunloginClient = r'安装包如路径':定义安装包路径
app = pywinauto.Application().start():启动运行安装包
lackey.click('photo/SunloginClientInstall.PNG'):查找与图片一样的位置,将鼠标移动到该位置之后点击鼠标
如果是输入栏,可以使用lackey.type('输入内容')功能输入文字