Skip to content

cxj007sos/rpa_improve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub issues GitHub license

目录

更新说明

项目背景

程序介绍

安装和使用

注意事项

Q&A

鸣谢

 

更新说明

2025-05-07

  • 删除了 "0.使用说明" 未来所有更新说明都将统一在 README.md 里进行维护更新

  • 依赖包版本兼容性问题的说明

由于以下原因,依赖包 pyscreeze 必须使用 0.1.29 (含)以下版本

  • 底层代码中 pyautogui 的 locateCenterOnScreen() 方法依赖 pyscreeze 库。
  • pyscreeze 库 0.1.29 以上版本在找不到图像时会抛出 ImageNotFoundException 错误,而不会返回None,导致程序闪退。

pyautogui 和 opencv-python 也需要安装互相兼容的版本,否则可能出现 _couldNotImportPyScreeze() 错误,找不到'confidence'导致鼠标事件执行失败。

经过测试的推荐版本组合(pyautogui 0.9.54、opencv-python 4.11.0.86、pyscreeze 0.1.29) 版本兼容性良好,推荐使用这三个版本。当然如果这些依赖包和你的python版本不兼容,请自行酌情调整。pyscreeze 必须使用 0.1.29 (含)以下版本。

 

2022-04-27

解决双击可以启动,但windows任务计划启动本脚本失败的问题

实际为源码中file = 'cmd.xls' 的路径的描述出现问题,需要改成file = r'cmd.xls'。(貌似不改也行,这个只是怕有\u等字符会被识别成命令)

运行windows任务计划时,必须做如下设置:

操作——编辑——起始于(可选) 里面添加 本脚本的绝对文件夹路径。

双击就执行中,双击运行程序_1次.py

最后的代码中去除了pause,增加了删除由于exe运行而产生的大量临时文件。

让运行一次的逻辑上更通畅,不会在最后停住。


 

项目背景

2021-11-24 00:35 一位同事给我在微信中转了,B站UP主 不高兴就喝水办公自动化视频

视频中的小程序实现了根据提供的图片,鼠标自动对其进行定位并实现双击、点击和滚轮的操作。

看了这个视频后我倍受鼓舞,就想为什么不再增加一些按键功能让这个程序变得更可用呢,于是我着手了开发。

经过一段时间的开发,此程序可以胜任一些简单的自动化操作了。

 

程序介绍

本程序是一个自动化程序,与前辈“按键精灵”相比,用 excel 的 xls 文件来编写自动化程序在某些情况下效率会更高一些。

对新手学习成本也会比较低一些,且绝对纯洁无广告。

源码在安装配置好环境,并下载好依赖包之后,理论上可以跨平台运行在多种系统下。

我仅在win7/Win10上测试可以正常使用,其他操作系统没有测试过。

 

安装和使用

安装

本程序必须使用python 3.4 或以上版本,需要先安装和配置python环境。

如何安装和配置python环境:https://www.runoob.com/python3/python3-install.html

安装配置完python后,需要继续安装以下依赖包才可以使用:

pip install pyperclip

pip install xlrd

pip install pyscreeze==0.1.29

pyscreeze 不得高于 0.1.29,否则会导致程序闪退,如果出现不兼容的情况可酌情降低版本

pip install pyautogui

pip install opencv-python

pip install pillow

  如果在中国大陆下载特别慢的话可以在 install 后面,增加一个参数-i 国内镜像地址即可。

例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyperclip

其他国内镜像地址
清华 https://pypi.tuna.tsinghua.edu.cn/simple
阿里云 http://mirrors.aliyun.com/pypi/simple
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple
华中理工大学 http://pypi.hustunique.com
山东理工大学 http://pypi.sdutlinux.org
豆瓣 http://pypi.douban.com/simple

注:不会安装和配置python环境也不用担心。已经打包了exe执行程序,可以在windows 7及其以上版本的操作系统中直接运行使用。只是它每次运行都需要拆包,会在 %temp% 文件夹中产生大量的以 MEI_xxx 命名的垃圾文件。并且exe的开启运行速度也比较慢。

(WIN7如果无法运行请 安装kb2533623补丁,重启后才可以正常使用。)

 

使用

本程序由两个文件组成:

"cmd.xls"

编写自动化流程的文件。

"大羽改良版.py"

主程序,编写完自动化流程后运行其来执行。

注意!这两个文件必须放在同一目录下,才能正常运行。否则会闪退!!

 

cmd.xls如何编写

必须按照以下规范编写,否则可能会出现闪退现象。第一行不要删除,是标题行,自动化流程从第二行开始编写。

第一列

指令类型,填写对应功能数字


1 单击 2 双击 3 右键
【这三条命令后加.1,即1.1\2.1\3.1代表找不到图片就跳过此步,如果不加则会不停扫描】

4 输入

5 等待

6 滚轮

7 热键组合

8 粘贴当前时间(第二列必须填写一些内容才能生效,填写任何内容均可。如:“当前时间”or“Now”)

9 windows CMD命令模式



 

第二列

指令内容,填写第一列中对应功能的属性


1,2,3 必须填写图片名,请参考下面的示例。注意:路径和名称中不能有中文。
【图片格式理论上均支持,实际只测试了png\jpg\bmp,其他格式未测试。】
【注意如果同屏有多个相同图标,会默认找到最左上的一个,因此怎么截图,截多大的区域,是个学问。宗旨就是“唯一”】

例如:
在同目录下的名为one.jpg的文件 one.jpg
在同目录下Image文件夹下的one.png文件 .\image\one.png
绝对路径下C盘test文件夹下的one.bmp文件 c:\test\one.bmp


  4 可以填写任何东西。 【注意其实这里是复制粘贴,并不是真正的输入。如果想输入请用7号命令】

  5 只能填写正数,可以是小数。

  6 只能填写正整数和负整数。 【正整数为往上滚,负整数为往下滚】

  7 填写热键组合,每个按键用英文逗号","分开。 当然单个的按键也可以。

  8 填写任何内容均可,但必须填写!如:“当前时间”or“Now”

  9 可以填写任何windows的 CMD\powershell和linxu终端命令,是否能执行就看你填写的是否正确。

例如:
启动任务管理器 ctrl,shift,esc,
输入12345 1,2,3,4,5,
按一下9这个键。 9,
热键组合的名请自行搜索pyautogui库的用法。
【注意:英文中的”,”无法被识别,原因是这个符号被用来分隔其他按键组合了。暂无没有更好的解决办法,如果需要输入英文的","请使用4号命令复制粘贴。】

  8 填写任何内容均可,比如“当前时间”or“Now”

  9 可以填写任何windows的 CMD\powershell和Linux终端命令,是否能执行就看你填写的是否正确。



 

第三列

重复次数


不填写则默认为执行1次,填写的话只能填写正整数,-1为无限循环。

目前重复次数仅支持 第一列为 1,2,3,7 的指令(分别为:鼠标单击,双击,右键,热键组合。)

其他指令暂不支持。



 

第四列

备注


可以不填。为了方便后期维护,你可以选择在这里为这条自动化流程添加注释。



 

cmd.xls示范

更多示范请参考实例文件夹里的cmd.xls
示范可能会因为系统,软件,访问网站等诸多环境变量的不同而无法完全正常使用,仅作参考。  

示范一:

指令类型: 1 单击 2 双击 3 右键 【这三条命令后加.1,即1.1\2.1\3.1代表找不到图片就跳过此步,如果不加则会不停扫描】 4 输入 5 等待 6滚轮 7热键组合 8粘贴当前时间(B列必须填写:当前时间) 9 windows CMD命令模式 内容: 图片名称(不能为中文).png、输入内容(实为复制粘贴) 等待时长/秒、滚轮距离(如-200,即为往下滚) 当前时间、windows CMD命令 重复次数 (-1代表一直重复) 备注
1 01.png 在屏幕上不断搜索执行程序同目录下 00.png 相同的内容直到找为止,然后对其进行鼠标“单击”
2 c:\test\02.jpg 在屏幕上不断搜索执行 c:\test\02.jpg 相同的内容直到找为止,然后对其进行鼠标“双击”
3.1 .\image\03.bmp 在屏幕上仅搜索一次执行程序同目录image文件夹下 03.bmp 相同的内容,然后对其进行鼠标“右键”。若无法找到相同的图片,则会跳过此步骤执行下一步。

 

示范二:

指令类型: 1 单击 2 双击 3 右键 【这三条命令后加.1,即1.1\2.1\3.1代表找不到图片就跳过此步,如果不加则会不停扫描】 4 输入 5 等待 6滚轮 7热键组合 8粘贴当前时间(B列必须填写:当前时间) 9 windows CMD命令模式 内容: 图片名称(不能为中文).png、输入内容(实为复制粘贴) 等待时长/秒、滚轮距离(如-200,即为往下滚) 当前时间、windows CMD命令 重复次数 (-1代表一直重复) 备注
9 start notepad 打开记事本
5 0.5 等待0.5秒
4 hello world!! 复制这段文字,并粘贴。即:ctrl+c ctrl+v
7 enter 50 执行回车,循环50次
8 Now 粘贴当前时间
6 200 鼠标滚轮“向上”滚动200距离
5 0.5 等待0.5秒
6 -200 鼠标滚轮“向下”滚动200距离
 

注意事项:

使用exe执行文件 "大羽改良版.exe" 在退出程序时,不要直接用鼠标点击右上角的 "X" 进行关闭,需要输入命令 “0.退出程序”。 因为exe会在 %temp% 文件夹中产生大量的以 MEI_xxx 命名的临时文件 0.退出程序 它是在退出之前将在 %temp% 产生的 MEI_xxx 临时垃圾文件全部删除后再退出程序,确保你的系统盘不会被临时文件占满。

使用 "大羽改良版.py"则不会有以上问题。


Q&A:

问:有没有视频教程?

答:有的点这里。python自动化改良版_第二版


问:为什么会出现闪退或者执行到一半控制台消失?

答:
1、没有正确安装和配置python环境,或者没有正确安装依赖包。可以尝试使用已经打包好的exe可执行文件。

2、"cmd.xls" 和 "大羽改良版.py" 或 "exe可执行文件" 没有放在同一个目录下。

3、"cmd.xls" 没有按照规范编写。


问:流程在控制台中已经显示执行,但是并未执行?

答:可能是两条指令太快计算机没有反应过来。建议在两条流程之间增加一个5号命令,适度增加等待时间。


鸣谢:

排名部分先后

不高兴就喝水,尔茄无双,王建



写在最后:

      本人不是专业程序员,只是一个普通的桌面IT运维。会一点点批处理和学过3个月的java,算是有一点点的编程基础。 看到了B站UP主不高兴就喝水的python自动化教学才第一次正式接触python,其实自己也不是很懂,把几个需求想明白之后求助了公司的开发大神才有这个优化版。

首先还是十分感谢不高兴就喝水的视频,喝水不忘挖井人没有他的视频也就没有后面的改良版。其实按键精灵也有类似的功能,但是自己用下来发现并不稳定,而且在特定的功能实现上这个python自动化会更快。

其次本人水平有限,应该不会再做修改优化。套用不高兴就喝水大佬的话:如果您仍然运行不起来,实在抱歉浪费您的时间,编程这玩意,环境和依赖有时候很麻烦,要调试。

2021.12.02

大羽

About

An rpa applet developed based on python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages