(个人笔记)au3 入门

来源:互联网 发布:八字排盘反推软件 编辑:程序博客网 时间:2024/06/06 02:49

  看公司胡老师au3玩得那么风骚,忍不住也开始学习学习。

1.autoit3 安装下载。AU3TOOL 工具箱--程序相关设置-安装这个程序,然后把压缩包中的scite ,很好用的au3编辑器快捷方式发送到桌面

以下按照教程来。

2. 首先是MsgBox的使用。在scite 中输入msg之后,它会自动弹出相关联的函数表,和eclipse ,VS 大番茄插件类似。非常爽,紧接着输入()然后还有函数说明。这些贴心的功能 第一时间就喜欢上了。

3.然后也许是AU3 窗口信息工具(autoit window spy),这个工具可以捕捉新打开的窗口,标题,里面的内容。可以捕捉鼠标坐标(不推荐,不同屏幕,不同分辨率适配太差),以便在后面的编程中作为条件,进行识别判断。貌似在C/C++ 中叫句柄,这个不确定。

4.F7编译 CTR+F7 GUI 编译(有界面可选),可以选择X86 ,X64架构!

5.函数总结:

MsgBox(0, "窗口标题", "窗口内容")   

run() //运行程序 

winwaitactive(“窗口标题”,“窗口内容”)   //等待指定窗口的开启然后运行,窗口内容应该使用比较独有的内容,免得混淆。

send  // 模拟键盘按键   (! 代表alt,^ 代表ctrl ,+代表shift  #代表win键) 发送多个按键   ("{SPACE} {TAB}{SPACE}")  

winactive // 窗体已经激活

controlsettext ("窗体标题","窗体文本",“要设置文字的控件类名或控件精确标题”,“需要设置的文字”)    //设置窗体里指定控件的文本,不论窗体或者控件的状态是否激活,可以输出中文。  

controlsend ("窗体标题","窗体文本",“接收文字的控件类名或控件精确标题”,“需要输入的文字”) 不能输出中文 //修改默认路径  帮助文档 索引搜索下

controlclick("窗体标题",“窗体文本”,“要点击的控件类名或控件精确标题”)  点击指定窗体里的指定控件,不论窗体或控件这时的状体是否激活。

mouseclick("鼠标左右键",在屏幕的x位置,在屏幕的y位置,点击次数) 

核心是先考虑使用一般命令和模拟键盘命令,再考虑复杂问题,再考虑获取屏幕坐标位置。


参考链接:http://wenku.baidu.com/view/362fa60d76c66137ee0619db.html

http://taozicici.blog.sohu.com/96021417.html

6.最近因为工作需要,写了一个定时获取外网IP(间隔半个小时),如果发现IP变化了,就利用花生壳动态DDNS 的HTTP协议手动更新IP,感觉蛮爽,但是还是有一些不足,欢迎指正

#Region ;**** 参数创建于 ACNWrapper_GUI ****#AutoIt3Wrapper_UseX64=n#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****;http://username:password@ddns.oray.com/ph/update?hostname=yourhostname&myip=ipaddress#include<ie.au3>#include<acn_net.au3>$x="http://username:password@ddns.oray.com/ph/update?hostname=yourhostname&myip="$y=$secondIp$firstIp=_networkgetinternetip()Sleep(30*60*1000)$secondIp=_networkgetinternetip()While $secondIp<>$firstIp  $oIE = _IECreate ("about:blank")  ;新建一个IE对象_IENavigate($oIE,addstr($x,$y))  ;开启一个IE 窗口Sleep(10000)  _IEQuit($oIE) ;;退出WEndFunc addstr($x,$y)$sum=$x&$yReturn $sumEndFunc
大概就是这样,先获取到外网IP,然后半小时候之后再获取一次,如果不一样就调用HTTP 协议进行手动更新,把usename 之类的自己替换下。

最后的字符串相加函数没有必要,直接用&即可,LZ新手,从C++转过来,习惯自定义函数了。。 

7。老婆大人天天对着电脑,忙起来也不晓得休息,写个提醒程序送给她,不过编译之后生成的exe文件通过邮箱上传报毒,改后缀名,压缩,不使用upx压缩都不行。。。。

本程序可以实现自定义工作时间(45min),休息时间(5min),程序从运行开始会一直运行,直到下班时间,哦,对了下班时间也可以自定义~。不过这个版本暂时没有添加。

#Region ;**** 参数创建于 ACNWrapper_GUI ****#AutoIt3Wrapper_Icon=C:\Users\Administrator\Downloads\176.ico#AutoIt3Wrapper_UseUpx=n#AutoIt3Wrapper_UseX64=n#AutoIt3Wrapper_Res_Comment=Author by liuzhong ,自定义工作时间及休息时间,定时提醒功能.默认的上午下班时间是12点,下午6点#AutoIt3Wrapper_Res_Fileversion=1.0.1.6#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****MsgBox(64, "休息下,走走,透透气哦", "护眼计时开始")Dim $worktimeDim $resttime$worktime = InputBox("哈哈", "输入工作时间(min)")$resttime = InputBox("哈哈", "输入休息时间(min)")MsgBox(64, "小TIPS", "这个程序开启之后会一直运行,直到下班时间停止,默认上午12点或者下午6点")MsgBox(64, "友情提示", "需要直接关闭,在任务管理器中结束,或者在屏幕右下角状态栏退出脚本")DoSleep($worktime * 60 * 60 * 1000)MsgBox(0, $worktime & "分钟了,应该休息下了", "起来走走,喝点水,运动下")Sleep($resttime * 60* 60 * 1000)MsgBox(0, $resttime & "分钟休息时间到", "休息时间太短了,55555")Until @HOUR = 12 Or @HOUR = 18 ;为真停止运行

嗯,差不多就是这样。


8.今晚写了个快捷方式管理菜单。

值得记录的是,想要打开程序,但是程序的安装目录都不一样。所以在run 里面使用绝对路径就不是很好。

另外一种方案是把快捷方式全部放桌面,然后把脚本放在桌面上,通过@scriptdir 来进行调用。

比如现在有腾讯QQ 这个快捷方式,

开始使用的是

run(@scriptdir &“\腾讯QQ”) 这样的方式打开,不行。通过msgbox 输出@scriptdir 又是正确的桌面路径。那时怎么回事呢

百度了很久发现,应该用 shellexcute 这个函数来调用。

ShellExecute("腾讯QQ","",@DesktopDir)

另外帮助里面的

Send 函数可用的按键列表

帮助很大!节省了很多时间。over

明天把图标处理下,还有就是窗体背景设置下,白花花的 好难看




原创粉丝点击