autoit3 试用

好久以前就想写个自动化的脚本,用来实现打开一个word 文档,一直没时间搞,直到找到了这个东东。


1、今天我下载了autoit3的安装文件,并且安装了这个工具,安装起来这个工具并不是很复杂,比较简单。

仿照着 帮助文件中的说明,写了个操作txt的程序:

内容如下:

————程序开始

Run("notepad.exe")
WinWaitActive("无标题 - 记事本")
Send("这只是一个测试脚本.")
WinClose("无标题 - 记事本")
WinWaitActive("记事本", "想保存文件吗?")
Send("!N")


—————程序结束

程序不复杂就是写一个打开txt的脚本,但是我这个脚本有个问题,开始的时候执行到了如下图片的地方就执行不下去了。


在我这边看来应该是 标红色的脚本没有检查到我输入的内容:“想保存文件吗?”

后来我就把红色地方的中文输入的“?”,修改成了英文输入法输入了“?”。最终测试通过了!

经过这次试验,我觉得autoit这个工具相当于是 一个半自动化的操作平台,他需要每时每刻检查当前的状态是否满足他的设定,如果当前的状态不满足他的设定的话,那么他就没有办法执行后面的结果了。不过这样也好,可以方便脚本的编译人员定位这个问题。

2、调试通过后,我的兴致来了,我开始研究怎么样可以与windows进行互动,而不仅仅是打开txt了。

参照帮助文件我又写了个

MsgBox(0,“love”,"你好!")

但是出师不利:运行的时候提示我如下的信息:


经过我仔细分析,发现auto提示的信息是我msgbox这个东东用错了,使用了中文的符号“”,而不是英文的“”.,果然修改成半角英文状态后,显示的字也变了。

MsgBox(0,"love","你好!")

再次运行:终于成功了,

msgbox输入的时候会提示 第一个参数是flag,但是没有给出具体的flag是什么,这里我就简单测试了下。

flag == 1 : 

flag == 2 :

flag == 3 :

flag == 4 :

flag == 5 :

flag == 6 :


flag ==  64:

flag == 65 :

flag == 66 :

flag == 67 :

flag == 68 :

flag == 69 :

flag == 70 :

大家有没有看明白呢?


3、关于正则表达式,在入门指南中还有部分正则表达式的内容。因此这里就顺便学习一下了。

StringRegExp( "test", "pattern" [, flag ] )

"test" = 可以认为是原始字符串
"pattern" = 匹配模式,就是你想要按照什么模式来匹配test的内容,如果test是 AAaBBb pattern 是 Ab 则匹配不到
flag[optional] = flag选项 可以提供给使用者 这样的功能,返回是否在test中找到了pattern,返回第一个匹配到pattern的test是什么、返回所有可以匹配到pattern的test内容
程序如下:

MsgBox(64,"Show",StringRegExp("Tells the function if you just want to know if the "pattern" is found, or if you want it to return the first match, or if you want it to return all the matches in the "test" string","pattern",1))
一如往常我的程序又一次失败了:



显然,StringRegExp这个函数只认“”和,并不认其他的符号,这里我只好对上面的内容进行修改,如下所示:

MsgBox(64,"Show",StringRegExp("Tells the function if you just want to know if the ‘pattern’ is found, or if you want it to return the first match, or if you want it to return all the matches in the ‘test’ string","pattern",1))

提示信息如下:


将程序修改为如下:

$sflat = StringRegExp("Tells the function if you just want to know if the ‘pattern’ is found, or if you want it to return the first match, or if you want it to return all the matches in the ‘test’ string","pattern",1)
MsgBox(64,"Show",$sflat[0])

修改了程序之后 显示了这样的结果


将stringregexp的flag修改为0,并且在输出的时候将msgbox的flag也修改为 0 则 输出如下结果


显然,stringregexp这个函数中0这个flag代表是否匹配到了模式;1代表输出第一个匹配到的模式,2与3 具体代表什么就需要后面慢慢摸索了,今天就到这里吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值