AUTOIT3.2.9.3.1(实操中文教程)
吸引人的晚安朋友圈第一章 入门
2,下面我们来写第一个程序[陈浩民主演的电视剧注意:";" 表示注释]
例子 1
msgbox(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 
#include <GUIConstants.au3>
GUICreate ( "公告 - wglm", 200, 200)
GUISetState (@SW_SHOW)
#include <GUIConstants.au3>
表示包含一个GUIConstants.au3库文件,如果没有这一行,下面一些函数将不可用。这是最基本的
GUICreate ( "公告 - wglm", 200, 200)
;表示创建一个窗口,"公告 - wglm" 是公告, 200, 200 分别表示宽高
GUISetState (@SW_SHOW)
; 显示空白窗口,窗口被创建后,默认是不显示,这一行的作用是显示出来。
GUICtrlCreateLabel("欢迎光临XX网吧",10,10,190,190)
;创建一个创建一个静态的 Label 控件,用来显示文字,"欢迎光临xx网吧" 表示窗口标题,",10,10" 表示距离窗口在与上的距离,190,15 分别表示宽和高
GUICtrlCreateLabel("本网吧网速过快,请看管好随身物品。",10,25,190,15)
;同上 
While 1
    $msg = GUIGetMsg()   
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
;表示运行脚本到窗口关闭,关于循环以后再详解。
exit 
002
  当然一个网吧公告不可能这么丑,如何让这个窗口具有一些特效呢?比如动画显示,动画关闭,我们这里只示例一下,不作详解,可以利用windows API 中的 AnimateWindow 函数,(这本不属于au3内容,可以说所有windows下程序通用)
那么我们将
GUICreate ( "公告 - wglm", 200, 200)
这一行,改成以下内容(两行)
$gui1 = GUICreate ( "公告 - wglm", 200, 200)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $gui1, "int", 500, "long", 0x00040010)
编译之后,再试一下?看是不是窗口有了进入特效?退出特效暂不提,当然很简单。还有更多的效果请参阅windows API手册.
  至于如何让窗口有个漂亮的外表,那就利用一些皮肤之类的了,以后再谈。
003
如何让程序通用,那就需要用配置文件的形式,你把程序分发给别人后,别人只需要修改其中配置.ini文件,就可以实现,修改提示内容等,配置文件的读取和写入还是另外一章再讲好了。
004 
现在我们能过弹出一个对话框来讲函数中的逗号,括号,中括号
帮助文件中对于msgbox这个函数是这样解释的
MsgBox ( 标志, "标题", "文本" [, 超时时间] )
如何理解呢?
1
基本理解,帮助中也说了标志一些十进制,如1 2 3 4 5 ,需要相应的内容则相加这些数字
比如我们需要一个带有确定和取消的对话框,那么就是
msgbox(1,"标题","这里是文本")
如果我们需要提示框有个问号,那么32+1,标志改为33
msgbox(33,"标题","这里是文本")
2
中括号括起来的内容,表示可选参数,也就是说你用不用都可以,但前面的必选参数是必须设置的。例如我们需要这个对话框3秒内关闭。那么实际运行用中就是下面这个样子,[]中括号实际是不需要输入的 如果不需要设置对话框消失那么,[]中括号也是不需要输入的
手把手教写au3程序04(开机维护通道实例)
  1,开机启动服务器上批处理
  2,运行批处理不显示控制台窗口(俗称黑框框)
  3,考虑服务器关机的情况。(或者说是客户机开机网络连接延时判断)
  4,如果考虑这个程序给别的朋友用,那么我们势必要写个配置文件来实现通用
那么这一章我们就要以上几点带来的问题解决方案,函数等。其中涉及au3的,运行程序,运行参数,ping,判断语句,循环语句,用户自定函数,配置读取。
1,开机启动服务器上批处理。
#include <Process.au3>
表示包含process.au3这个文件,好使用其中的自定义函数 _RunDOS
假设为我们服务器上的批处理所在位置是
那么我们的第二行代码就是:
_RunDOS("\\192.168.0.251\boot$\boot.bat")
表示运行批处理 \\192.168.0.251\boot$\boot.bat
这样做,实际上有可能不够兼容,因为winxp sp2有可能提示该文件可能不安装是否运行,所以,我们不直接运行,用call,calldos命令中的调用其它批处理命令,在这里我们的特殊用处是不出现xp的安全提示。(当然不出现安全提示,还可以通过修改注册表,或者将ip换成机器名的形式,但这样做最方便,ip地址直接访问也最稳定,我推荐用下面的方法。)
RunDOS("call \\192.168.0.251\boot$\boot.bat")
2,运行批处理不显示控制台窗口(俗称黑框框)
这里我们已经解决了第二个问题。因为_rundos 这个自定义函数的源代码是
Func _RunDOS($sCommand)
Local $nResult = RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
Return SetError(@error, @extended, $nResult)
EndFunc ;==>_RunDOS
看不懂没关系,只要注意到其中 @SW_HIDE 这个显示标志,表示"隐藏窗口"即可,也就是在运行这个批处理的过程中隐藏了窗口。
3,考虑服务器关机的情况。(或者说是客户机开机网络连接延时判断) 
用中文来说,我们作一个选择:如果服务器没有关机,运行批处理,如果关机记录日志。
If Ping("192.168.0.251") Then
_RunDOS("call \\192.168.0.251\boot$\boot.bat")
Exit
EndIf

其中
if ... then

endif
au3的条件选择语句,意思是
如果ping 192.168.0.251成功,则运行
_RunDOS("call \\192.168.0.251\boot$\boot.bat")
这里就实现了对服务器是否在线的判断(也可以是开机网络连接延时判断)。我们这样判断在实际中没有太大的意义,我们要实现的是当服务器关机时程序等待,等待到开机后,再运行机制批处理。所以我们接下来要用到循环语句。
while
wend
代码如下:
while 1
If Ping("192.168.0.251") Then
_RunDOS("call \\192.168.0.251\boot$\boot.bat")
Exit
EndIf
wend

其中while 后面的1表示一直循环。
程序的运行过程就是在while 1 wend之间的代码一直运行
里面的代码,如果服务器在线,运行批处理,运行完批处理exit(退出程序),如果服务器不在线呢?程序就继续循环,直到服务器在线为止。 到此,完整的代码就是:
1. #include <Process.au3>
2. while 1
3. If Ping("192.168.0.251") Then
4. _RunDOS("call \\192.168.0.251\boot$\boot.bat")
5. Exit
6. EndIf
7. wend
4,如果考虑这个程序给别的朋友用,那么我们势必要写个配置文件来实现通用。
这里我们学习配置文件的读取,详细函数用法就参考帮助文档,这里就不复制了,直接上
代码。
首先我们对程序作一些改动,定义一些变量。方便我们学习更高级的程序语言,我们采取先定义再使用的方法定义变量。
#include <Process.au3>
dim $Serverip
dim $serverroute
$Serverip = iniread(@scriptdir & "\boot.ini","配置","服务器IP","192.168.0.251")
$serverroute = iniread(@scriptdir & "\boot.ini","配置","批处理路径","\\192.168.0.251\boot$\boot.bat")
while 1
If Ping($Serverip) Then
_RunDOS("call " & $serverroute)
Exit
EndIf
wend

在程序同目录,新建一个boot.ini作为配置文件,内容为
[配置]
服务器IP=192.168.0.251
批处理路径=\\192.168.0.251\boot$\boot.bat
对于新手来说,上面的代码复杂了一点,但是只要你花几秒钟认真理解,是非常简单的。

下面我们一一解释

校园恋爱后宫动漫#include <Process.au3>
;包含process.au3文件,用于在下面使用自定义函数_RunDOS
dim $Serverip
dim $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" 表示默认值,如果读取失败就使用该值。
while 1
If Ping($Serverip) Then
_RunDOS("call " & $serverroute)
Exit
EndIf
wend

上面我们已经说过了。

如果该程序投入网吧使用的话,建议在开头加上。#NoTrayIcon,表示不显示系统托盘图标。

本节完,示例和源码与配置文件在附件中提供,供学习讨论。

程序运行参数
au3运行程序时 "@SW_HIDE" 参数表示隐藏运行,将不出现被运行程序的窗口。
ping
用于判断网络是否连通
if then
endif
判断语句:判断条件如果成功做某事,如果不成功做另外的事。
while
wend
循环语句,用于循环执行某些命令,至到出现一些关键字,如exit,程序结束。
_rundos()
用户自定函数:用于运行批处理
iniread()
配置读取:用于读取配置文件中的值,使程序更具有通用性。