早知道有这么个吊炸天的开源自动化神器,我就不用其它工具了!

戳下方名片,关注并星标

回复“1024”获取2TB学习资源!

👉体系化学习:运维工程师打怪升级进阶之路 4.0

—   特色专栏  —

MySQL / PostgreSQL / MongoDB

ElasticSearch / Hadoop / Redis

Kubernetes / Docker / DevOps

Kafka / RabbitMQ / Zookeeper 

监控平台 / 应用与服务 / 集群管理

Nginx / Git / Tools OpenStack

大家好,我是民工哥!

众所周知,程序员的日常工作很多都是重复性的,这样的工作内容会大大降低我们日常工作效率。所以,一款高效的自动化工具,绝对是我们日常工作的好帮手。

今天,民工哥给大家推荐一款功能强大的自动化神器:AutoIt!帮助我们自动执行各种 Windows GUI 操作,提高工作效率。

AutoIt 简介

AutoIt 是一个使用类似 BASIC 脚本语言的免费软件(自动化脚本语言和工具集),设计用于 Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键、鼠标移动和窗口/控件的组合来实现自动化任务。

213f0e9da300fd8a3347ea85f2b9474f.png

AutoIt 最初是为了模拟键盘和鼠标输入,以便自动执行重复性的任务,如安装软件、配置系统设置等。随着时间的推移,AutoIt 发展成为一个功能强大的脚本语言,支持各种 Windows 操作系统的自动化任务。它还具有数据抓取和处理、系统管理等功能。

AutoIt 功能介绍

3d33145d21c87bc0de15a3ee0ce6114c.png
  • 自动化脚本编写:AutoIt提供了一种类似于BASIC的脚本语言,用户可以使用该语言编写自动化脚本,实现各种Windows GUI操作,如模拟鼠标点击、键盘输入、窗口控制等。

  • 自动化任务执行:通过AutoIt脚本,用户可以自动执行一系列任务,例如自动安装软件、配置系统设置、执行批处理文件等。

  • 窗口和控件操作:AutoIt支持对Windows窗口和控件进行操作,例如最小化窗口、关闭窗口、获取控件文本等。

  • 数据处理:AutoIt可以处理各种数据,包括字符串、数字、日期等,支持数据类型转换、字符串操作等。

  • 系统管理:AutoIt可以访问和修改Windows注册表项、访问系统路径等,还可以与文件系统进行交互。

  • 调试和日志记录:AutoIt提供了调试工具和日志记录功能,方便用户调试脚本和记录脚本执行过程。

  • 编译和运行:AutoIt可以将脚本编译成可执行文件,以便在没有AutoIt解释器的情况下运行脚本。

AutoIt的优点

334f27a1e91c344ec546f3f935cc8e91.png

AutoIt的优点包括:

  • 简单易学:语法类似于BASIC语言,非常容易上手,初学者也能快速掌握。

  • 功能强大:AutoIt 提供了丰富的功能和工具集,包括窗口操作、文件处理、数据类型处理、系统管理等,满足了用户各种自动化需求。

  • 脚本执行速度快:相较于其它同类工具,AutoIt的脚本执行速度非常快,从而极大的提高了自动化任务的执行效率。

  • 多系统版本支持:AutoIt可以运行在多种Windows系统上。

  • 社区支持:社区活跃,用户问题求助、经验交流都非常方便,同时还能及时获取最新的脚本和工具。

  • 免费开源:免费开源,用户可以自由使用、修改和分发AutoIt及其脚本。

  • 安全性:AutoIt脚本语言是解释执行的,相比于直接在系统上执行自动化任务,安全性更高。

安装使用

安装

访问官方网站:https://www.autoitscript.com/site/autoit/downloads/ 选择合适的版本下载。

de27c617b04d726508c9ffc9431361e1.png

直接安装即可

3f0be69b1c779ded7d765a47c012d96c.png067190b94249fa3a9b58d62b25522616.png

手册

20cee72bee1e881b24199328b067151d.png

自带的脚本工具:提取窗口信息

ffaf10afa21e12f28d3483b7c4d520cc.png
功能使用
脚本编辑
20a2f303eae6afc5fc7206c304308a63.png
语法高亮
a3674702f17656d4fe4c5636e961299d.png
代码折叠
950e144683713f44c477be2688b6887e.png
自动执行
60012a201acbf1e4f0ff374daecb3a52.png
脚本示例

以下是一些常见的AutoIt脚本示例:

模拟键盘按键:

Send("Hello World") ; 发送"Hello World"到当前活动窗口

模拟鼠标点击:

Click("OK") ; 在当前窗口中点击"OK"按钮

获取窗口标题:

$title = WinGetTitle("[ACTIVE]") ; 获取当前活动窗口的标题,并存储在变量$title中  
MsgBox(0, "Window Title", $title) ; 显示一个消息框,显示窗口标题

关闭窗口:

WinClose("[CLASS:Notepad]") ; 关闭所有Notepad窗口

获取文本框内容:

$text = EditGetText("[CLASS:Edit]") ; 获取当前文本框中的文本,并存储在变量$text中  
MsgBox(0, "Text", $text) ; 显示一个消息框,显示文本内容
自动化安装软件的脚本示例
#include <Windows.h>  
#include <WinUser.au3>  
  
; 设置安装程序文件路径  
$setupExe = "C:\Path\To\Setup.exe"  
  
; 启动安装程序  
Run($setupExe)  
  
; 等待安装程序启动  
WinWaitActive("[CLASS:Installer]")  
  
; 点击"Next"按钮  
Click("Next")  
  
; 等待许可协议界面加载完成  
WinWaitActive("[TITLE:License Agreement]")  
  
; 输入许可证密钥,并点击"Next"按钮  
$licenseKey = "1234567890"  
Send($licenseKey)  
Click("Next")  
  
; 等待安装类型界面加载完成  
WinWaitActive("[TITLE:Choose Setup Type]")  
  
; 选择安装类型,并点击"Next"按钮  
Click("Complete")  
Click("Next")  
  
; 等待选择目标文件夹界面加载完成  
WinWaitActive("[TITLE:Destination Folder]")  
  
; 输入目标文件夹路径,并点击"Next"按钮  
$folder = "C:\Program Files\MyApp"  
Send($folder)  
Click("Next")  
  
; 等待准备安装界面加载完成  
WinWaitActive("[TITLE:Ready to Install]")  
  
; 点击"Install"按钮,开始安装过程  
Click("Install")  
  
; 等待安装过程完成  
WinWaitActive("[TITLE:Installer - Completing the MyApp Setup]")  
  
; 点击"Finish"按钮,完成安装  
Click("Finish")
抓取网页数据的脚本示例
#include <IE.au3>  
  
; 打开网页  
$ie = _IECreate("https://www.example.com", 3) ; 打开指定网址的网页,窗口句柄为3  
  
; 等待网页加载完成  
_IENavigate($ie, "https://www.example.com")  
WinWaitActive("[CLASS:Internet Explorer_Server]")  
  
; 获取网页标题  
$title = _IEPropertyGet($ie, "title")  
MsgBox(0, "Title", $title) ; 显示网页标题的对话框  
  
; 获取网页源代码  
$source = _IEPropertyGet($ie, "document.body.innerHTML")  
MsgBox(0, "Source Code", $source) ; 显示网页源代码的对话框  
  
; 关闭网页  
_IEClose($ie)
系统管理任务的示例
自动备份文件
#include <File.au3>  
  
; 定义备份路径和文件名  
$backupDir = "C:\Backup"  
$fileName = "My Documents.bak"  
  
; 创建备份文件夹  
DirCreate($backupDir)  
  
; 获取当前日期时间,用于文件名  
$currentDateTime = TimeGet()  
  
; 构建备份文件路径和名称  
$backupPath = $backupDir & "\" & $currentDateTime & "_" & $fileName  
  
; 备份文件  
FileCopy("C:\My Documents", $backupPath)  
  
; 检查备份是否成功  
If @error Then  
    MsgBox(16, "Error", "Backup failed!")  
Else  
    MsgBox(0, "Success", "Backup completed successfully!")  
EndIf

这个脚本将自动备份"C:\My Documents"文件夹到指定的备份目录,并将备份文件命名为当前日期时间。如果备份成功,将显示成功消息,否则将显示错误消息。

清理临时文件
#include <File.au3>  
#include <MsgBox.au3>  
  
; 定义临时文件目录和要保留的天数  
$tempDir = "C:\Temp"  
$daysToKeep = 7  
  
; 获取当前日期时间,用于比较日期  
$currentDateTime = TimeGet()  
$cutoffDateTime = DateAdd("d", -$daysToKeep, $currentDateTime)  
  
; 循环遍历临时文件夹中的文件,检查是否需要清理  
DirSet($tempDir)  
$fileList = FileListGet()  
For $i = 0 To $fileList[$iCount - 1] ; 索引从0开始,直到最后一个文件  
    $fileTime = FileGetAttrib($tempDir & "\" & $fileList[$i]) ; 获取文件属性,包括修改时间  
    If $fileTime < $cutoffDateTime Then ; 如果文件的修改时间早于保留期限,则删除文件  
        FileDelete($tempDir & "\" & $fileList[$i]) ; 删除文件  
        MsgBox(0, "Cleanup", "Deleted file: " & $fileList[$i]) ; 显示已删除的文件名  
    EndIf  
Next

这个脚本将清理指定目录(例如"C:\Temp")中早于指定天数(例如7天)的临时文件。它将遍历目录中的所有文件,检查文件的修改时间,如果文件的修改时间早于保留期限,则删除该文件。每次删除文件时,将显示一个消息框,显示已删除的文件名。

定时执行特定任务

使用AutoIt的WinWait和WinActive函数可以检测窗口的激活状态,并根据条件执行特定任务。例如,以下脚本将等待特定窗口(例如"记事本")被激活,然后在其上执行双击操作:

#include <Windows.au3>  
#include <MsgBox.au3>  
  
; 等待"记事本"窗口被激活并点击鼠标左键一次(双击)操作需要两个步骤来完成,所以使用两个WinWaitActive函数和两个Click函数来实现双击操作。  
WinWaitActive("[CLASS:Notepad]") ; 等待"记事本"窗口被激活  
Click("Notepad") ; 在"记事本"窗口上点击鼠标左键一次(第一次点击)  
WinWaitActive("[CLASS:Notepad]") ; 等待"记事本"窗口再次被激活(双击操作间隔)  
Click("Notepad") ; 在"记事本"窗口上再次点击鼠标左键一次(第二次点击)以完成双击操作。

AutoIt 使用场景介绍

AutoIt的使用场景非常广泛,以下是几个常见的使用场景:

  • 软件自动化测试:AutoIt可以用于编写自动化测试脚本,模拟用户在软件界面上的操作,对软件进行测试和验证。

  • 系统配置和部署:通过AutoIt脚本,可以对Windows系统进行自动化配置和部署,例如自动安装软件、配置网络设置等。

  • 批量处理:AutoIt可以用于编写批量处理脚本,对大量数据进行自动化处理和分析,例如数据抓取、文件批量重命名等。

  • 自动化办公:AutoIt可以用于编写自动化脚本,实现办公任务的自动化,例如自动填写表单、数据录入等。

  • 游戏辅助工具:AutoIt可以用于编写游戏辅助脚本,例如自动瞄准、自动施法等。

总结

总的来说,AutoIt 简单易学、功能强大、执行速度快、跨平台、社区支持、免费开源和安全性高等特点。这些优点使得 AutoIt 成为一款非常受欢迎的自动化工具,广泛应用于各种 Windows GUI 操作的自动化任务中。

公众号读者专属技术群

构建高质量的技术交流社群,欢迎从事后端开发、运维技术进群(备注岗位,已在技术交流群的请勿重复添加微信好友)。主要以技术交流、内推、行业探讨为主,请文明发言。广告人士勿入,切勿轻信私聊,防止被骗。

扫码加我好友,拉你进群

a36c9b9b2904b0591f9ade011a3a9dd5.jpeg

6cae50b926cf7f3d3e5bf47b95e91ee1.gif

退钱了!有人退到 3 万多

深夜突发!京东正面“硬刚”

阿里突然宣布!立即生效!

申请破产!官网已无法访问…

史上速度最快的 Windows 来了!

ceb2121bebd80f8ecbb003c01dd3d8a8.png

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下在看,加个星标,这样每次新文章推送才会第一时间出现在你的订阅列表里。点在看支持我们吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值