AU3编程基础教程第-1-页共19页AUTOIT汉化版3.2.9.3.1(实操中文教程)第一章入门2,下面我们来写第一个程序。[注意:;号表示注释]例子1msgbox(0,标题-wglm,你好,世界)exit;msgbox是弹出一个对话框函数,0,表示标志(可以设定各种类型的弹出对话框,比如带问号,带错误标志),标题-wglm是窗口标题,你好,世界是对框内容,xit表示退出3,点scite_autoit编辑器的,工具-编译脚本,这里可以设置生成exe文件的图标,文件名,“资源修改”选项卡可以设置程序的一些版权信息说明等。也就是点exe文件右键属性,看到一些内容。点击“编译脚本”按钮,就会生成exe文件,在刚设定路径找到exe文件双击,我们的第一个程序就成功手把手教你写au3程序-第一章入门002我们今天的任务是写一个在系统托盘(屏幕右下角)只需一个函数。TrayTip(标题,紧急通知,村东头教大家学au3,3)sleep(3000)traytip表示在托盘图标上显示一个气球提示,公告标题-wglm表示标题,紧急……表示提示内容,3表示提示显示时间,因为微软系统关系这个时间只是大略值。sleep(3000);表示让au3程序暂停3秒(3000毫秒),traytip函数的完整格式如下:TrayTip(标题,文本,超时时间[,属性])手把手教你写au3程序-第一章入门003#includeGUIConstants.au3GUICreate(公告-wglm.net,200,200)GUISetState(@SW_SHOW)#includeGUIConstants.au3表示包含一个GUIConstants.au3库文件,如果没有这一行,下面一些函数将不可用。这是最基本的GUICreate(公告-wglm.net,200,200);表示创建一个窗口,公告-wglm.net是公告,200,200分别表示宽高GUISetState(@SW_SHOW)AU3编程基础教程第-2-页共19页;显示空白窗口,窗口被创建后,默认是不显示,这一行的作用是显示出来。GUICtrlCreateLabel(欢迎光临XX网吧,10,10,190,190);创建一个创建一个静态的Label控件,用来显示文字,欢迎光临xx网吧表示窗口标题,,10,10表示距离窗口在与上的距离,190,15分别表示宽和高GUICtrlCreateLabel(本网吧网速过快,请看管好随身物品。,10,25,190,15);同上While1$msg=GUIGetMsg()If$msg=$GUI_EVENT_CLOSEThenExitLoopWend;表示运行脚本到窗口关闭,关于循环以后再详解。exit002当然一个网吧公告不可能这么丑,如何让这个窗口具有一些特效呢?比如动画显示,动画关闭,我们这里只示例一下,不作详解,可以利用windowsAPI中的AnimateWindow函数,(这本不属于au3内容,可以说所有windows下程序通用)那么我们将GUICreate(公告-wglm.net,200,200)这一行,改成以下内容(两行)$gui1=GUICreate(公告-wglm.net,200,200)DllCall(user32.dll,int,AnimateWindow,hwnd,$gui1,int,500,long,0x00040010)编译之后,再试一下?看是不是窗口有了进入特效?退出特效暂不提,当然很简单。还有更多的效果请参阅windowsAPI手册.至于如何让窗口有个漂亮的外表,那就利用一些皮肤之类的了,以后再谈。003如何让程序通用,那就需要用配置文件的形式,你把程序分发给别人后,别人只需要修改其中配置.ini文件,就可以实现,修改提示内容等,配置文件的读取和写入还是另外一章再讲好了。004现在我们能过弹出一个对话框来讲函数中的逗号,括号,中括号AU3编程基础教程第-3-页共19页帮助文件中对于msgbox这个函数是这样解释的MsgBox(标志,标题,文本[,超时时间])如何理解呢?1基本理解,帮助中也说了标志一些十进制,如12345,需要相应的内容则相加这些数字比如我们需要一个带有确定和取消的对话框,那么就是msgbox(1,标题,这里是文本)如果我们需要提示框有个问号,那么32+1,标志改为33msgbox(33,标题,这里是文本)2中括号括起来的内容,表示可选参数,也就是说你用不用都可以,但前面的必选参数是必须设置的。例如我们需要这个对话框3秒内关闭。那么实际运行用中就是下面这个样子,[]中括号实际是不需要输入的如果不需要设置对话框消失那么,[]中括号也是不需要输入的手把手教写au3程序04(开机维护通道实例)1,开机启动服务器上批处理。2,运行批处理不显示控制台窗口(俗称黑框框)3,考虑服务器关机的情况。(或者说是客户机开机网络连接延时判断)4,如果考虑这个程序给别的朋友用,那么我们势必要写个配置文件来实现通用。那么这一章我们就要以上几点带来的问题解决方案,函数等。其中涉及au3的,运行程序,运行参数,ping,判断语句,循环语句,用户自定函数,配置读取。1,开机启动服务器上批处理。#includeProcess.au3表示包含process.au3这个文件,好使用其中的自定义函数_RunDOS假设为我们服务器上的批处理所在位置是那么我们的第二行代码就是:_RunDOS(\\192.168.0.251\boot$\boot.bat)表示运行批处理\\192.168.0.251\boot$\boot.bat这样做,实际上有可能不够兼容,因为winxpsp2有可能提示该文件可能不安装是否运行,所以,我们不直接运行,用call,call是dos命令中的调用其它批处理命令,在这里我们的特殊用处是不出现xp的安全提示。(当然不出现安全提示,还可以通过修改注册表,或者将ip换成机器名的形式,但这样做最方便,ip地址直接访问也最稳定,我推荐用下面的方法。)RunDOS(call\\192.168.0.251\boot$\boot.bat)AU3编程基础教程第-4-页共19页2,运行批处理不显示控制台窗口(俗称黑框框)这里我们已经解决了第二个问题。因为_rundos这个自定义函数的源代码是Func_RunDOS($sCommand)Local$nResult=RunWait(@ComSpec&/C&$sCommand,,@SW_HIDE)ReturnSetError(@error,@extended,$nResult)EndFunc;==_RunDOS看不懂没关系,只要注意到其中@SW_HIDE这个显示标志,表示隐藏窗口即可,也就是在运行这个批处理的过程中隐藏了窗口。3,考虑服务器关机的情况。(或者说是客户机开机网络连接延时判断)用中文来说,我们作一个选择:如果服务器没有关机,运行批处理,如果关机记录日志。IfPing(192.168.0.251)Then_RunDOS(call\\192.168.0.251\boot$\boot.bat)ExitEndIf其中if...thenendif是au3的条件选择语句,意思是如果ping192.168.0.251成功,则运行_RunDOS(call\\192.168.0.251\boot$\boot.bat)这里就实现了对服务器是否在线的判断(也可以是开机网络连接延时判断)。我们这样判断在实际中没有太大的意义,我们要实现的是当服务器关机时程序等待,等待到开机后,再运行机制批处理。所以我们接下来要用到循环语句。whileAU3编程基础教程第-5-页共19页wend代码如下:while1IfPing(192.168.0.251)Then_RunDOS(call\\192.168.0.251\boot$\boot.bat)ExitEndIfwend其中while后面的1表示一直循环。程序的运行过程就是在while1和wend之间的代码一直运行里面的代码,如果服务器在线,运行批处理,运行完批处理exit(退出程序),如果服务器不在线呢?程序就继续循环,直到服务器在线为止。到此,完整的代码就是:1.#includeProcess.au32.while13.IfPing(192.168.0.251)Then4._RunDOS(call\\192.168.0.251\boot$\boot.bat)5.Exit6.EndIf7.wend4,如果考虑这个程序给别的朋友用,那么我们势必要写个配置文件来实现通用。这里我们学习配置文件的读取,详细函数用法就参考帮助文档,这里就不复制了,直接上代码。首先我们对程序作一些改动,定义一些变量。方便我们学习更高级的程序语言,我们采取先定义再使用的方法定义变量。AU3编程基础教程第-6-页共19页#includeProcess.au3dim$Serveripdim$serverroute$Serverip=iniread(@scriptdir&\boot.ini,配置,服务器IP,192.168.0.251)$serverroute=iniread(@scriptdir&\boot.ini,配置,批处理路径,\\192.168.0.251\boot$\boot.bat)while1IfPing($Serverip)Then_RunDOS(call&$serverroute)ExitEndIfwend在程序同目录,新建一个boot.ini作为配置文件,内容为[配置]服务器IP=192.168.0.251批处理路径=\\192.168.0.251\boot$\boot.bat对于新手来说,上面的代码复杂了一点,但是只要你花几秒钟认真理解,是非常简单的。下面我们一一解释AU3编程基础教程第-7-页共19页#includeProcess.au3;包含process.au3文件,用于在下面使用自定义函数_RunDOSdim$Serveripdim$serverroute因为要读取配置文件,所以定义上面两个变量,$serverip表示服务器IP,$serverroute表示批处理路径。$Serverip=iniread(@scriptdir&\boot.ini,配置,服务器IP,192.168.0.251)$serverroute=iniread(@scriptdir&\boot.ini,配置,批处理路径,\\192.168.0.251\boot$\boot.bat)读取配置文件,给$Serverip,$serverroute两个变量赋值。iniread(@scriptdir&\boot.ini,配置,服务器IP,192.168.0.251);这句表示读取程序所在目录的boot.ini文件,读取该文件的“配置”字段的“服务器IP”这个关键字后面的值。最后的192.168.0.251表示默认值,如果读取失败就使用该值。while1IfPing($Serverip)Then_RunDOS(call&$serverroute)ExitEndIfwend上面我们已经说过了。如果该程序投入网吧使用的话,建议在开头加上。#NoTrayIcon,表示不显示系统托盘图标。AU3编程基础教程第-8-页共19页本节完,示例和源码与配置文件在附件中提供,供学习讨论。程序运行参数au3运行程序时@SW_HIDE参数表示隐藏运行,将不出现被运行程序的窗口。ping用于判断网络是否连通ifthenendif判断语句:判断条件如果成功做某事,如果不成功做另外的事。whilewend循环语句,用于循环执行某些命令,至到出现一些关键字,如exit,程序结束。_rundos()用户自定函数:用于运行批处理iniread()配置读取:用于读取配置文件中的值,使程序更具有通用性。[原创]从批处理(bat)转到au3-ThinkingAu3教程1-05我们有两种方法从bat转到au31,是直接在au3中运行DOS命令,这个很容