手把手教你写au3程序

来源:百度文库 编辑:神马文学网 时间:2024/04/26 06:48:03
手把手教你写au3程序-第一章入门  引子
  应一位朋友要求,他想学编程,但一直不知道如何开始,这里我就做一系统教程,引导大家进入au3强大的程序世界(脚本),目的是让每一位渴望个性的网管朋友,都写出为网吧专用的小程序。(如果你想写个windows vista 2009,那么请放弃阅读此教程)


第一章 入门
  AutoIt v3 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件,简来说是脚本语言,但因可以生成exe,而其风格简单适用而且支持GUI,com等,很受网管同行看好
可以做的事,非常之多,网吧常用基本上可以完成。网管之星,火狐等游戏更新软件就是用该软件写成.
  到了后面,随着学习的深入,我也将放出一些网吧维护工具的源码供参考。


;和大家一起学习进步,不对之处,肯请批评指正。


1,首先下载安装:
  地址:http://down.wglm.net/system/system/20071108/2908.html
  装好后打开目录:x:autoit3\SciTe\SciTE.exe (编辑器,支持语法高亮,你也可以用记事本,但不推荐)双击打开。

2,下面我们来写第一个程序。

注意:";" 号表示注释
例子 1
以下是代码
Copy code

msgbox(0,"标题-wglm","你好,世界")
exit


解释:
;msgbox是弹出一个对话框函数,0,表示标志(可以设定各种类型的弹出对话框,比如带问号,带错误标志),"标题-wglm"是窗口标题,"你好,世界"是对框内容
exit表示退出



3,点scite_autoit编辑器的,"工具"-"编译脚本",
  这里可以设置生成exe文件的图标,文件名,“资源修改”选项卡可以设置程序的一些版权信息说明等。也就是点exe文件右键属性,看到一些内容。
点击“编译脚本”按钮,就会生成exe文件,在刚设定路径找到exe文件双击,我们的第一个程序就成功了
  好了,最基本和最简单就示范到这里,是不是很简单很容易入门?不要偷懒,学计算机重在实践,你也来做一个?把图抓上来我看看?
[attachment=30856]

下节课再见。

  课后作业,请先随意阅读AutoIt3.chm帮助文件,能看多少是多少。   =================================================================       手把手教你写au3程序-第一章 入门 002    现在我们先来回答一些疑问。

  001,学au3程序需要什么文化水平
  答:小学三年级以上
  
  002,我学得会吗?
  答:相信我,当我还在当学生的时候,就开始教同学们offices(老师当时一天泡妞),当时学校最差的小女孩都被我教会了用word,所以我有信心和决心带大家入门。

  003,需要多长时间学会?
  答:因人而异,古人云"只要功夫深 铁棒磨成针",也就是说古人肯定你只要努力,就能学会,但并没有规定多少时间铁棒被磨成针。每天努力多一点,就快一点。

  004,我如何静下心来学习?
  答:首先要下定决心来研习,其次注意生活营养,少近女色,少自己摧残自己。

  好,回答了这么多题外问题,接下来进入今天的正题。

  还是从实例出发,以勾起大家的兴趣作为开始。
  我们今天的任务是写一个在系统托盘(屏幕右下角),来提示顾客的公告,大家一定看过很多用vbs,或者批处理来实现的例子,但都太麻烦,而且不是自己原创,今天来写一个自己原创个性的,是不是很有意义?

  前面已经教了大家哪里下载教程和编程工具(http://bbs.wglm.net/read.php?tid=80393),在au3里实现我们需要的这个提示功能,只需一句代码(一个函数)。

Copy code
TrayTip( "公告标题-wglm", "紧急通知,村东头教大家学au3,各家男女老少晚饭后请准时集合学习",3)
sleep(5000)


  好,编译成exe文件,双击。是不是成功了?
[attachment=31001]

;traytip表示在托盘图标上显示一个气球提示,"公告标题-wglm"表示标题,"紧急通知,村东头教大家学au3,各家男女老少晚饭后请准时集合学习"表示提示内容,3表示提示显示时间,因为微软系统关系这个时间只是大略值。
sleep(3000)
;表示让au3程序暂停3秒(3000毫秒),如果没有这句,程序一运行便退出,也就看不到提示效果了。

traytip函数的完整格式如下:
Copy code
TrayTip ( "标题", "文本", 超时时间 [, 属性] )


  初学编程,例如有些朋友说连批处理的for都搞不清楚,可能对于初学者最不好理解的就是函数的参数,还有那些逗呈,括号,中括号他们的用法和意义了。在这里我可以很负责任的告诉各位,其实非常好理解。

  下节课将专为大家讲解这些表面上让人头晕而实际很容易理解的内容,AU3的学习过程,很多都是在对于函数的理解灵活运行上,函数虽多,但不用强记,用熟了自然便会贯通。

  运行于windows的程序,多半要利用windows的编程接口,所以,只要你学会了一种编程,其它的语言相对会容易掌握一些,而且程序学习快慢,还要看你对windows了解多少,了解越多,学习越容易。

  怎么样,你是不是觉得很容易?是不是觉得很好玩?更好玩的还在后面,下节课见。       ========================================================================     手把手教你写au3程序-第一章 入门 003   有朋友问为什么我们的教程和别的教程不一样,问得好,的确是不一样。培养天才人物的有效途径是左右脑协调合作(奥尔森),《学习的革命》一书中指出,学习课程,都应该先从概貌开始,掌握整体图表和整体结构,再掌握部份具体细节。
  传统的教学,不慌不忙,一章一节,每次课程,只有部份,没有总体慨貌,这很蠢而且没有效率。
  开始的这几张,都是教各位掌握au3的整体结构和从宏观上了解au3是一个什么东东,能做些什么事,如何去操控它为我们服务。这就是我们学习的过程,先掌握全局,再细入微观、深入。
  废话完了
  第一章,第三节,用户图形界面(GUI)(应朋友要求,这一张就多一点除了窗口的讲解,还续上 上一节课留下的逗号,括号,中括号)
  au3是支持窗口的,比尔盖茨的成功起始于大大改善了计算机与人之间的交流友好程度,这得益于窗口(windows)这个概念,GUI你则可以理解为程序界面(GUI是一个窗口界面,但包括各种控件,如按钮,编辑框等等)
001
下面我们还是以写一个网吧公告为例,开始这一节的实例
Copy code

#include
GUICreate ( "公告 - wglm.net", 200, 200)
GUISetState (@SW_SHOW)
GUICtrlCreateLabel("欢迎光临XX网吧",10,10,190,15)
GUICtrlCreateLabel("本网吧网速过快,请看管好随身物品。",10,25,190,15)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
exit


[attachment=31194]

#include
;表示包含一个GUIConstants.au3库文件,如果没有这一行,下面一些函数将不可用。这是最基本的
GUICreate ( "公告 - wglm.net", 200, 200)
;表示创建一个窗口,"公告 - wglm.net" 是公告, 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.net", 200, 200)
这一行,改成以下内容(两行)
Copy code
$gui1 = GUICreate ( "公告 - wglm.net", 200, 200)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $gui1, "int", 500, "long", 0x00040010)

  编译之后,再试一下?看是不是窗口有了进入特效?退出特效暂不提,当然很简单。还有更多的效果请参阅windows API手册.
  至于如何让窗口有个漂亮的外表,那就利用一些皮肤之类的了,以后再谈。

003
如何让程序通用,那就需要用配置文件的形式,你把程序分发给别人后,别人只需要修改其中配置.ini文件,就可以实现,修改提示内容等,配置文件的读取和写入还是另外一章再讲好了,因内容比较重要。

004 
现在我们能过弹出一个对话框来讲函数中的逗号,括号,中括号
帮助文件中对于msgbox这个函数是这样解释的
Quote:
MsgBox
---------------------------------------------
显示一个简单的对话框(可设置超时属性)。
MsgBox ( 标志, "标题", "文本" [, 超时时间] )

如何理解呢?
1
基本理解,帮助中也说了标志一些十进制,如1 2 3 4 5 ,需要相应的内容则相加这些数字
比如我们需要一个带有确定和取消的对话框,那么就是
Copy code
msgbox(1,"标题","这里是文本")

[attachment=31196]
如果我们需要提示框有个问号,那么32+1,标志改为33
Copy code
msgbox(33,"标题","这里是文本")

[attachment=31197]
2
中括号括起来的内容,表示可选参数,也就是说你用不用都可以,但前面的必选参数是必须设置的。例如我们需要这个对话框3秒内关闭。那么实际运行用中就是下面这个样子,[]中括号实际是不需要输入的
Copy code
msgbox(33,"标题","这里是文本",3)

如果不需要设置对话框消失那么,[]中括号也是不需要输入的就是下面这个样子
Copy code
msgbox(33,"标题","这里是文本")

这里就教大家如何理解帮助文件,所以课下大家一定多去看些基本的东西和函数的用法,多练习,使用。