桌面自动化应用技术,通常用于在桌面系统上执行一些重复和简单的工作。包括:数据输入、文件管理、启动应用程序等。这类应用的主要目的是提高工作效率、减少人为失误,把一些重复性的工作交给软件,让人类去完成更加复杂和创造性的任务。比较流行的做法是把这种技术应用在RPA/AI+RPA项目。
桌面自动化的应用场景很多,例如:
- 在企业应用中,它有助于自动生成报告、实现数据迁移、更新客户记录等。
- 在医疗保健领域,自动化应用可以帮助管理患者数据,安排他们的预约和报销流程。
- 在金融行业,可以用于处理发票、财务表、欺诈检测等。
- 在客户服务方面,桌面自动化应用可以帮助维护客户关系、回复咨询、跟踪订单等。
- IT运维部门,桌面自动化也可以帮助他们维护系统、监控系统。
开源的桌面自动化项目有利于技术整合以及自定义应用,下面主要推荐几个比较好的桌面自动化应用开源项目。
1.RobotGo(跨平台)
https://github.com/go-vgo/robotgo
这是一个基于Golang开发的桌面自动化。可以实现鼠标控制、键盘操作、读屏、进程、窗口句柄、图像和位图以及全局事件监听器等功能。
RobotGo支持Mac、Windows和Linux(X11)主流操作系统;也支持arm64和x86-amd64。
2.Nut.js(跨平台)
https://github.com/nut-tree/nut.js
https://nutjs.dev/
nut.js是一个专为跨平台GUI自动化而设计的自动化库,由nut-tree社区开发,主要基于JavaScript或TypeScript开发。它支持开发人员实现兼容Windows、macOS和Linux上的应用程序的自动化交互,它提供了一组强大的工具来模拟用户操作,如鼠标移动、键盘输入和屏幕捕获。
3.PyAutoGUI(跨平台)
https://github.com/asweigart/pyautogui
PyAutoGUI是一个跨平台的GUI自动化Python模块。用于以编程方式控制鼠标键盘。可在Windows、macOS和Linux上运行,且支持Python2和Python3。
4.AutoHotkey (支持Windows)
https://github.com/AutoHotkey/AutoHotkey
AutoHotkey旨在通过创建宏实现重复性任务的自动化。可以使用一种自定义的脚本语言定义键盘快捷键(热键)。
使用AutoHotkey,用户可以轻松地在计算机上自动执行各种任务,简化工作流程、节省时间。具备较高灵活性,具有友好的用户界面,是简化日常活动的热门选择。
5.AutoKey(Linux)
https://github.com/autokey/autokey
AutoKey是一个用于Linux和X11的开源桌面自动化程序,它使用Python编写,可在所有主要的Linux发行版上运行。
6.Self-Driver(Windows)
https://github.com/hofstadter-io/self-driving-desktop
这是个桌面自动化开发框架,开发语言是Python。可以用文本文件驱动键盘和鼠标。使用这个框架需要有一些开发经验。
7.Python-UIAutomation-for-Windows
(Windows)
https://github.com/yinkaisheng/Python-UIAutomation-for-Windows
Python-UIAutomation-for-Windows是一个开源Python库,它提供了一个自动化Windows GUI应用程序的综合框架。该工具利用Microsoft的UI Automation API,以编程方式实现与用户界面元素进行交互。
8.pywinauto(windows)
https://github.com/pywinauto/pywinauto
pywinauto是一个开源的Python库,用于在Windows系统上实现图形用户界面(GUI)操作自动化。支持开发人员通过模拟用户行为(如:鼠标点击、菜单选择等),以编程方式操作应用程序。它支持更复杂的操作,如获取文本数据。
9.Hammerspoon (macOS)
https://github.com/Hammerspoon/hammerspoon
这是一个强大的OS X自动化工具。在其核心,Hammerspoon只是操作系统和Lua脚本引擎之间的桥梁。Hammerspoon通过一组扩展组件向用户公开了一些特定的系统功能。有了这些基础,开发人员可以编写Lua脚本来控制OS X环境下的桌面操作。
10.robotjs
https://github.com/octalmage/robotjs
RobotJS是个基于Node.js的桌面自动化应用,支持macOS、Windows和Linux。但是,这个项目好像好久没更新了。