AUTOIT汉化版32931实操中文教程Word格式文档下载.docx
《AUTOIT汉化版32931实操中文教程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《AUTOIT汉化版32931实操中文教程Word格式文档下载.docx(20页珍藏版)》请在冰点文库上搜索。
表示让au3程序暂停3秒(3000毫秒),
traytip函数的完整格式如下:
TrayTip("
文本"
超时时间[,属性])
手把手教你写au3程序-第一章入门003
#include<
GUIConstants.au3>
GUICreate("
公告-"
200,200)
GUISetState(@SW_SHOW)
表示包含一个GUIConstants.au3库文件,如果没有这一行,下面一些函数将不可用。
这是最基本的
表示创建一个窗口,"
是公告,200,200 分别表示宽高
显示空白窗口,窗口被创建后,默认是不显示,这一行的作用是显示出来。
GUICtrlCreateLabel("
欢迎光临XX网吧"
10,10,190,190)
创建一个创建一个静态的Label控件,用来显示文字,"
欢迎光临xx网吧"
表示窗口标题,"
10,10"
表示距离窗口在与上的距离,190,15 分别表示宽和高
本网吧网速过快,请看管好随身物品。
10,25,190,15)
同上
While1
$msg=GUIGetMsg()
If$msg=$GUI_EVENT_CLOSEThenExitLoop
Wend
;
表示运行脚本到窗口关闭,关于循环以后再详解。
exit
002
当然一个网吧公告不可能这么丑,如何让这个窗口具有一些特效呢?
比如动画显示,动画关闭,我们这里只示例一下,不作详解,可以利用windowsAPI中的AnimateWindow函数,(这本不属于au3内容,可以说所有windows下程序通用)
那么我们将
这一行,改成以下内容(两行)
$gui1=GUICreate("
DllCall("
user32.dll"
int"
AnimateWindow"
hwnd"
$gui1,"
500,"
long"
0x00040010)
编译之后,再试一下?
看是不是窗口有了进入特效?
退出特效暂不提,当然很简单。
还有更多的效果请参阅windowsAPI手册.
至于如何让窗口有个漂亮的外表,那就利用一些皮肤之类的了,以后再谈。
003
如何让程序通用,那就需要用配置文件的形式,你把程序分发给别人后,别人只需要修改其中配置.ini文件,就可以实现,修改提示内容等,配置文件的读取和写入还是另外一章再讲好了。
004
现在我们能过弹出一个对话框来讲函数中的逗号,括号,中括号
帮助文件中对于msgbox这个函数是这样解释的
MsgBox(标志,"
[,超时时间])
如何理解呢?
1
基本理解,帮助中也说了标志一些十进制,如12345,需要相应的内容则相加这些数字
比如我们需要一个带有确定和取消的对话框,那么就是
msgbox(1,"
这里是文本"
)
如果我们需要提示框有个问号,那么32+1,标志改为33
msgbox(33,"
2
中括号括起来的内容,表示可选参数,也就是说你用不用都可以,但前面的必选参数是必须设置的。
例如我们需要这个对话框3秒内关闭。
那么实际运行用中就是下面这个样子,[]中括号实际是不需要输入的如果不需要设置对话框消失那么,[]中括号也是不需要输入的
手把手教写au3程序04(开机维护通道实例)
1,开机启动服务器上批处理。
2,运行批处理不显示控制台窗口(俗称黑框框)
3,考虑服务器关机的情况。
(或者说是客户机开机网络连接延时判断)
4,如果考虑这个程序给别的朋友用,那么我们势必要写个配置文件来实现通用。
那么这一章我们就要以上几点带来的问题解决方案,函数等。
其中涉及au3的,运行程序,运行参数,ping,判断语句,循环语句,用户自定函数,配置读取。
1,开机启动服务器上批处理。
Process.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"
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
Exit
EndIf
其中
if...then
endif
是au3的条件选择语句,意思是
如果ping192.168.0.251成功,则运行
这里就实现了对服务器是否在线的判断(也可以是开机网络连接延时判断)。
我们这样判断在实际中没有太大的意义,我们要实现的是当服务器关机时程序等待,等待到开机后,再运行机制批处理。
所以我们接下来要用到循环语句。
while
wend
代码如下:
while1
IfPing("
wend
其中while后面的1表示一直循环。
程序的运行过程就是在while1和wend之间的代码一直运行
里面的代码,如果服务器在线,运行批处理,运行完批处理exit(退出程序),如果服务器不在线呢?
程序就继续循环,直到服务器在线为止。
到此,完整的代码就是:
1.#include<
2.while1
3.IfPing("
4._RunDOS("
5.Exit
6.EndIf
7.wend
4,如果考虑这个程序给别的朋友用,那么我们势必要写个配置文件来实现通用。
这里我们学习配置文件的读取,详细函数用法就参考帮助文档,这里就不复制了,直接上代码。
首先我们对程序作一些改动,定义一些变量。
方便我们学习更高级的程序语言,我们采取先定义再使用的方法定义变量。
dim$Serverip
dim$serverroute
$Serverip=iniread(@scriptdir&
\boot.ini"
配置"
服务器IP"
$serverroute=iniread(@scriptdir&
批处理路径"
IfPing($Serverip)Then
call"
$serverroute)
在程序同目录,新建一个boot.ini作为配置文件,内容为
[配置]
服务器IP=192.168.0.251
批处理路径=\\192.168.0.251\boot$\boot.bat
对于新手来说,上面的代码复杂了一点,但是只要你花几秒钟认真理解,是非常简单的。
下面我们一一解释
包含process.au3文件,用于在下面使用自定义函数_RunDOS
dim$serverroute
因为要读取配置文件,所以定义上面两个变量,$serverip表示服务器IP,$serverroute表示批处理路径。
读取配置文件,给$Serverip,$serverroute两个变量赋值。
iniread(@scriptdir&
这句表示读取程序所在目录的boot.ini文件,读取该文件的“配置”字段的“服务器IP”这个关键字后面的值。
最后的"
表示默认值,如果读取失败就使用该值。
while1
上面我们已经说过了。
如果该程序投入网吧使用的话,建议在开头加上。
#NoTrayIcon,表示不显示系统托盘图标。
本节完,示例和源码与配置文件在附件中提供,供学习讨论。
程序运行参数
au3运行程序时"
@SW_HIDE"
参数表示隐藏运行,将不出现被运行程序的窗口。
ping
用于判断网络是否连通
ifthen
判断语句:
判断条件如果成功做某事,如果不成功做另外的事。
循环语句,用于循环执行某些命令,至到出现一些关键字,如exit,程序结束。
_rundos()
用户自定函数:
用于运行批处理
iniread()
配置读取:
用于读取配置文件中的值,使程序更具有通用性。
[原创]从批处理(bat)转到au3-ThinkingAu3教程1-05
我们有两种方法从bat转到au3
1,是直接在au3中运行DOS命令,这个很容易。
但是如果系统不了某个外部命令或者CMD被限制使用,这时,我们的调用就会失效了。
2,用AU3内置函数来完成要做的事(推荐)
我们先简单说第一种方法
#include
_rundos("
echo>
c:
\1.txt"
其中"
就是我们的DOS命令,表示显示字符串并将命令结果输出到c:
\1.txt中。
这种方法,是直接用au3调用批处理命令,相对简单的多,会用批处理的朋友即刻就可以学会。
详说第二种方法
毕竟,我们在学习一种新的脚本之前,若非必要(只有批处理能完成的,AU3无法作到才考虑这种方法)就尽可能不要调用其它程序,因为要考虑其它程序(BAT)倒底是不是一定可以运行。
所以,下面我将列出在网吧维护中,可能常用的批处理的直接AU3内置函数的应用。
1删除文件
FileDelete("
)
表示删除c盘下1.txt文件
2复制文件
FileCopy("
\2.txt"
1)
表示将c:
\1.txt移动到c:
\2.txt,标志1,表示覆盖已存在的文件,更多可选参数0=(默认)不覆盖已存在的文件,1=覆盖已存在的文件,8=当目标文件夹不存在,就自动创建一个.
3移动文件
FileMove("
\windows\1.txt"
1)
\windows\1.txt,参数1表示覆盖存在的文件
4获取文件属性
FileGetAttrib("
)
获取c:
\1.txt文件的属性
5移动或重命名文件
1)
移动c:
\1.txt文件到c:
\windows\1.txt,1表示覆盖存在的文件
将c:
\1.txt重命名为c:
\2.txt
6在一个文本文件中写入数据
FileWrite("
表示在c:
\1.txt中写入,如果1.txt不存在,程序会自行创建。
(有更标准的方法,为了学习方便,我们先学简单的。
6结束进程
ProcessClose("
qq.exe"
表示结束进程qq.exe
7返回当前运行的进程列表
ProcessList()
表示返回现在正在运行的进程。
8运行其它程序
Run("
C:
\ProgramFiles\qq.exe"
表示运行C:
\ProgramFiles\目录下,QQ.exe程序
9运行其它程序直到程序结束
RunWait("
\ProgramFiles\目录下,QQ.exe程序,直到qq.exe结束。
10ping
Ping("
表示ping
11延时
Sleep(1000)
表示延时1000毫秒,再执行下面的行。
12 关机
Shutdown
(1)
表示关机,"
1"
还可以被替换为以下标志,或者相加,实现多个重复的功能。
0=Logoff(注销)
1=Shutdown(关机)
2=Reboot(重启)
4=Force(强制执行)
8=Powerdown(关机)
32=Standby(待机)
64=Hibernate(休眠)
今天先说这些最常用的批处理中可能被用的命令,大家一定要每个去试验一下,有不懂的,不明白的,可以跟贴提出,我每天会定时回答大家疑问。
还有一些批处理需要转的也可以提出来。
课后作业:
写一个au3程序,实现以下功能
1,在c:
盘建一个.txt文件
2,在其中写入你的论坛ID,如我就是thinking
3,将.txt 重命名为.txt
4,运行你的IE浏览器,让他自动打开
5,等5秒后后关闭这个浏览器
6,ping并将返回值记录到脚本目录的ping.log文件中。
大家做完可以将代码贴上来,一起交流和探讨。
AU3的第一章基础教程到此章为止就全部结束了。
[原创]AU3教程006-通过一个IP修改程序学习GUI操作
这一章我们讲一个根据配置文件和用户输入修改IP的程序的编写,来学习AU3中,GUI的建立,用户操作的响应,配置文件的读取,用户输入的读取.
首先大家还是下载AU3来安装:
这个是我私人重新打包的版本,相比原版
1,更改了默认的编译exe图标.
2,打包了全汉化帮助,所有UDF全汉化.
3,自己写了个工具箱,里面都是实用的调用,没有太多无谓的东西.
1,首先,我简单说下这个版本安装后,工具箱的内容.
===001_工具箱.jpg
2,先点击"
图形编辑KODA"
我们先画个界面.
===002_生成GUI.jpg
然后点工具,生成界面,把代码复制出来.新建一个改IP.AU3,将刚复制的代码放进去,右键用scite打开编辑.
界面生成了,但现在这个界面只能看,没有任何功能.我们接下来需要写代码来让程序有实际功能.
3.新建一个配置文件ip.ini,用来让程序更具有通用性.
内容:
机器名前缀=WGLM-
1.DNS=220.189.127.106,220.189.127.107
2.路由=192.168.0.254
3.IP前缀=192.168.0.
===003_配置文件.jpg
[attachment=47867]
4.在ip.au3上右键-编辑脚本(scite)
这样就用scite编辑器打开了我们刚才生成的GUI,好来编辑他.
代码:
ButtonConstants.au3>
EditConstants.au3>
GUIConstantsEx.au3>
WindowsConstants.au3>
#Region###STARTKodaGUIsection###Form=
$Form1=GUICreate("
Form1"
330,230,192,114)
$Input1=GUICtrlCreateInput("
Input1"
88,40,121,21)
$Button1=GUICtrlCreateButton("
Button1"
88,96,123,25)
GUISetState(@SW_SHOW)
#EndRegion###ENDKodaGUIsection###
$nMsg=GUIGetMsg()
Switch$nMsg
Case$GUI_EVENT_CLOSE
EndSwitch
WEnd
5,读取配置文件。
在#include<
下增加
Global$configPath=@ScriptDir&
\ip.ini"
Global$Name_qz=IniRead($configPath,"
机器名前缀"
0)
Global$DNS=IniRead($configPath,"
DNS"
Global$router=IniRead($configPath,"
路由"
Global$ip_qz=IniRead($configPath,"
IP前缀"
这五行用函数IniRead()读取配置文件,并赋给相应的变量,等待程序后续调用.
Global$configPath=@ScriptDir&
这句话的作用是,定义一个全局(GLOBAL)变量$configPath(AU3的变量以$开头,非常易于区分出变量),这个变量保存我们的配置文件的路径。
@ScriptDir 表示脚本程序所在的路径 &
表示连接字符串(如"
a"
结果就是1a 这样一个字符串,在au3中,字符串必须以半角的"
或者'
括起来),假设程序在c:
\,那么运行程序后$configpath的值就为c:
\ip.ini
还可以写成
$configPath=@ScriptDir&
但这不方便以后我们将程序的每个功能,分写成不同的函数方便在不同的程序中都可以调用,我用global来定义这是一个全局全量,每个函数都可以调用这个变量,这个变量,在所有程序中每个函数中,都有唯一的值.
$configPath="
ip.ini"
如果你直接双击ip.exe是没有问题,但这样的坏处就是,用CMD调用时,程序当前运行目录,不是程序所在目录。
假如你