查看完整版本: AU3学习资料

似水年华 2007-1-21 07:37 PM

AU3学习资料

[code]#include <rocess.au3>
MsgBox(4096, "更新", '请点"确定"后开始更新,10秒后自动开始更新.', 10)
$rc = _RunDos("copy.exe \updata\up$\劲乐团 f:\劲乐团")
MsgBox(4096, "更新", '更新完毕,请点"确定"后开始运行游戏', 10)
Runwait("regedit /s e:\网络游戏\劲乐团\jlt.reg")
Run("e:\网络游戏\劲乐团\O2Jam.exe") [/code]

AU3打开某个文件夹
run("Explorer d:\公共下载区")

au3脚本解决一些SB上QQ不会选上TM还是QQ的问题

[code]$userid = InputBox ( "QQ用户登录", "请输入QQ号码:" ,"","",200,120 )
Run("d:\通讯软件\qq2005\CoralQQ.exe")
WinWaitActive("","软键盘")
ControlClick("", "QQ号码:","Edit1")
ControlSend("","QQ号码:","Edit1",$userid)
ControlCommand("", "登录模式:","ComboBox2","SelectString",'网吧模式') [/code]

计算机用户名,公司名和名称更改Au3脚本(可以改成纯数字)  

[code]$u = RegRead( "HKLM\Software\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner" )
$c = RegRead( "HKLM\Software\Microsoft\Windows NT\CurrentVersion", "RegisteredOrganization" )
$n = RegRead( "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName", "ComputerName")
$nu = InputBox ( "改变电脑用户名称", "请输入新的用户名称:" , $u ,"",200,120 )
$nc = InputBox ( "改变您的公司名称", "请输入新的公司名称:" , $c ,"",200,120 )
$nn = InputBox ( "改变您的电脑名称", "请输入新的电脑名称:" , $n ,"",200,120 )
RegWrite( "HKLM\Software\Microsoft\Windows NT\CurrentVersion", "RegisteredOwner", "REG_SZ", $nu )
RegWrite( "HKLM\Software\Microsoft\Windows NT\CurrentVersion", "RegisteredOrganization", "REG_SZ", $nc )
RegWrite( "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName", "ComputerName", "REG_SZ", $nn )
RegWrite( "HKLM\SYSTEM\ControlSet001\Control\ComputerName\ComputerName","ComputerName","REG_SZ",$nn)
RegWrite( "HKLM\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName","ComputerName","REG_SZ", $nn)
RegWrite( "HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters","NV Hostname","REG_SZ", $nn)
RegWrite( "HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters","Hostname","REG_SZ", $nn)
RegWrite( "HKLM\SYSTEM\ControlSet003\Control\ComputerName\ComputerName","ComputerName","REG_SZ", $nn)
RegWrite( "HKLM\SYSTEM\ControlSet003\Services\Tcpip\Parameters","NV Hostname","REG_SZ", $nn)
RegWrite( "HKLM\SYSTEM\ControlSet003\Services\Tcpip\Parameters","Hostname","REG_SZ", $nn) [/code]

一个批处理里导入注册表后,再运行程序  
[code]Runwait("regedit /s K:\games\netgames3\劲乐团\game.reg")
Run("K:\games\netgames3\劲乐团\O2Jam.exe") [/code]

删除D盘根目录下所有的*.tmp以及*.dll。批处理的写法为

[code]deltree /y d:\*.tmp >nul

deltree /y d:\*.dll >nul [/code]

换作autoit3,打开记事本:

[code]run(@comspec & " /c deltree /y d:\*.tmp","",@sw_hide)

run(@comspec & " /c deltree /y d:\*.dll","",@sw_hide) [/code]

Auto技巧收集 里面有两则技巧,分别是

[b]1.如未打开lnk 文件  

2.如何打开.msi 文件  [/b]

[color=Red]1.如何打开.lnk 文件  [/color]

问题:如何打开.lnk 文件  

方法:Run(@COMSPEC & \' /c "文件完整路径"\',"", @SW_HIDE)

说明:不能直接用Run,采用命令行打开的方法,“link文件路径”可以替换为您使用文件路径

示例:Run(@COMSPEC & ' /c "\server233.lnk"',"", @SW_HIDE

[color=Red]2.如何打开.msi 文件  [/color]

问题:如何打开.msi 文件  

方法1:Run(@COMSPEC & \' /c "文件完整路径"\',"", @SW_HIDE)

说明:不能直接用Run,采用命令行打开的方法,“msi文件路径”可以替换为您使用文件路径

示例:Run(@COMSPEC & \' /c "Cocuments and SettingsAdministrator桌面scriptziguangunispim30.msi"\',"", @SW_HIDE)


方法2:Run(\'msiexec /i "文件完整路径")  

说明:采用msiexec来安装msi文件

msiexec是 Windows Installer的一部分。用来帮助Windows Installer package files (MSI)格式的安装文件。

更多Windows Installer的参数,请查看[url]http://support.microsoft.com/default.aspx?scid=kb;en-us;314881[/url]

示例:Run(\'msiexec /i "Cocuments and SettingsAdministrator桌面scriptziguangunispim30.msi"\')

;这是无人值守自动安装wrar320sc的脚本文件  
;找到wrar320sc.exe

;将下面文字拷贝到notepad.exe中保存到和wrar320sc.exe同一目录下.

;鼠标右键点击该TXT文件,选择打开方式中autoit,就可以看运行情况了

[code]run, wrar320sc.exe
blockinput, on
winwaitactive,,版权所有(C)1993-2003
send, {enter}
winwaitactive,,WinRAR 关联文件
send, {enter}
winwaitactive,,已经成功地安装到文件
send, {enter}
blockinput,off [/code]

运行QQ输入用户名,密码及模式,登录。未考虑是否隐身  

[code]run("C:\Program Files\Tencent\qq\QQ.exe")
AutoItSetOption("WinTitleMatchMode", 4)  
;由于QQ标题为空格及其它非标准字符,所以采用匹配classname
WinWaitActive("classname=#32770")
ControlSetText("classname=#32770","","Edit1","123456")
;输入用户名
ControlFocus("classname=#32770","","Edit2")
;激活密码框
send("123456")
ControlCommand("classname=#32770","","ComboBox2","SelectString", "消息保护模式")
;选择模式
ControlClick("classname=#32770","","Button5")
;登录 [/code]

如何建立快捷方式!
一个例子:

[code]FileCreateShortcut("C:\Program Files\ACDSee\ACDSee.exe" , @DesktopDir & "\ACDSee.lnk", "C:\Program Files\ACDSee", "", "", "", "^!d" ) [/code]

[code]FileCopy(@scriptdir & "\PFW.exe",@ProgramFilesDir & "\SkyNet\FireWall\PFW.exe",1) [/code]

在autoit3.0中如何实现更改电脑ip和网关?
语句用  
[code]Run(@ComSpec & ' /c netsh -c interface ip set address "本地连接" static 192.168.0.2 255.255.255.0 192.168.0.1 1',"",@SW_HIDE) [/code]

关于设置DNS

1、设置主DNS
[code]RunWait(@ComSpec & ' /c netsh -c interface ip set dns "本地连接" static 202.102.152.3 primary',"",@SW_HIDE) [/code]

2、设置备用DNS
用interface ip 里的set命令确实不能直接设置备用DNS。对于设置备用DNS可以用 netsh interface ip add dns 命令。
netsh interface ip add dns "本地连接" 202.102.134.68 2
[code]Runwait(@ComSpec & ' /c netsh -c interface ip add dns "本地连接" 202.102.134.68 2',"",@SW_HIDE) [/code]

写成脚本就是
[code]Runwait(@ComSpec & ' /c netsh -c interface ip set dns "本地连接" static 202.102.152.3 PRIMARY',"",@SW_HIDE)
Runwait(@ComSpec & ' /c netsh -c interface ip add dns "本地连接" 202.102.134.68 2',"",@SW_HIDE) [/code]

注意这里第一个RunWait不能写成Run,这是由于两条命令的差别在于,RunWait是等待命令结束再执行下一条命令,而Run是本条命令开始执行即继续下面的命令。

如果第一条写做Run则两条命令几乎同时开始执行,结果第二条可能执行的比较快而出错。

建议:设置IP,DNS,Win等方面可没设置脚本的方法,即先>netsh -c interface ip dump >dld1.txt
把设置导出来,修改为一个脚本文本放在AutoIt脚本同一目录下。再用命令恢复。
恢复命令可写为
[code]Runwait(@ComSpec & ' /c netsh -f "' & @ScriptDir & '\old1.txt"',"",@SW_HIDE) [/code]


至于网络设置脚本的用法,大家自己修改哦!

从网上抄到下面的文章得到了我们要的方法

netsh -c interface ip set address "本地连接" static 192.168.0.2 255.255.255.0 192.168.0.1 1

把它写成autoit语句就成了

[code]Run(@ComSpec & ' /c netsh -c interface ip set address "本地连接" static 192.168.0.2 255.255.255.0 192.168.0.1 1',"",@SW_HIDE) [/code]

另外,根据文章最后一段,我们可以把配置写成脚本文件,用命令导入。其实写成批处理,也很方便!

下面是在命令行下修改IP等配置的方法

GPS语:一个非常不错的,利于提高日常W2K系统维护工作效率的法子。希望对您有用。 :)  
-------------------------------------------------------------------------------------------------------------------  
[quote]Click---[Start]--->[Run]  
Tpying...  

C:>cmd  
C:>ipconfig (首先用ipconfig这个命令看一下更改之前的ip地址)  

Windows 2000 IP Configuration  

Ethernet adapter 本地连接:  

Connection-specific DNS Suffix . :  
IP Address. . . . . . . . . . . . : 192.168.0.250 (本地连接更改之前的ip)  
Subnet Mask . . . . . . . . . . . : 255.255.255.0  
Default Gateway . . . . . . . . . : 192.168.0.1  

PPP adapter 拨号连接:  

Connection-specific DNS Suffix . :  
IP Address. . . . . . . . . . . . : 211.149.128.147  
Subnet Mask . . . . . . . . . . . : 255.255.255.255  
Default Gateway . . . . . . . . . : 211.149.128.147  

C:>netsh (然后执行netsh这个命令)  
netsh>interface (netsh命令的子命令)  
interface>ip (interface命令的子命令)  
interface ip>set (interface ip命令的子命令)  

下列指令有效:  

此上下文中的命令:  
set address - --------设置指定的接口的 IP 地址或默认网关。  
set dns - -------设置 DNS 服务器模式和地址。  
set wins - -------设置 WINS 服务器模式和地址。  
interface ip>set address "本地连接" static 192.168.0.2 255.255.255.0 192.168.0.1 1 (设置ip地址)  
确定。  


interface ip>exit  


C:>ipconfig  
(更改后再用ipconfig命令看一下ip地址,确认一下是否更改成功)  

Windows 2000 IP Configuration  

Ethernet adapter 本地连接:  

Connection-specific DNS Suffix . :  
IP Address. . . . . . . . . . . . : 192.168.0.2 (更改后的ip说明成功了)  
Subnet Mask . . . . . . . . . . . : 255.255.255.0  
Default Gateway . . . . . . . . . : 192.168.0.1  

PPP adapter 拨号连接:  

Connection-specific DNS Suffix . :  
IP Address. . . . . . . . . . . . : 211.149.128.147  
Subnet Mask . . . . . . . . . . . : 255.255.255.255  
Default Gateway . . . . . . . . . : 211.149.128.147  

C:>  

netsh这个命令还有好多强大的功能 如下:  

C:>netsh  
netsh>?  

下列指令有效:  

此上下文中的命令:  
.. - 移到上一层上下文级。  
? - 显示命令列表。  
aaaa - 更改到 `aaaa' 上下文。  
abort - 丢弃在脱机模式下所做的更改。  
add - 将一个配置项添加到项目列表中。  
alias - 添加一个别名  
bye - 退出程序。  
commit - 提交在脱机模式中所做的更改。  
delete - 在项目列表上删除一个配置项目。  
dhcp - 更改到 `dhcp' 上下文。  
dump - 显示一个配置脚本。  
exec - 运行一个脚本文件。  
exit - 退出程序。  
help - 显示命令列表。  
interface - 更改到 `interface' 上下文。  
offline - 将当前模式设置成脱机。  
online - 将当前模式设置成联机。  
popd - 从堆栈上打开一个上下文。  
pushd - 将当前上下文放推入堆栈。  


quit - 退出程序。  
ras - 更改到 `ras' 上下文。  
routing - 更改到 `routing' 上下文。  
set - 更新配置设置。  
show - 显示信息  
unalias - 删除一个别名。  
wins - 更改到 `wins' 上下文。  

下列的子上下文可用:  
routing interface ras dhcp wins aaaa  

若需要命令的更多帮助信息,请键入命令,  
后面跟 ?。  [/quote]
--------------------------------------------------------------------------------------------------------------------  
PS:Spart saied:  
有的时候设置ip不太好指定接口,可以这样子也很方便  
比如修改ip或者dns  
可尝试用  

netsh -c interface ip dump >dld.txt  

把设置导出来  
然后用记事本打开old.txt修改里面的ip呀,掩码、dns什么的  
然后netsh -f old.txt  
导进去就完成修改了

“木马克星”的安装脚本,木马克星版本为5.46 build 0805版, 其安装文件名必须为setup.exe

脚本文件保存后缀名为au3,然后用用autoit里的scritptoexe编译成exe文件后放在木马克星安装文件同一目录下使用。(使用版本一定要一至,不然可能就会出错)

[code];
; AutoIt Version: 3.x  
; Language: English  
; Platform: Win9x/NT  
; Author: A.N.Other ([email]myemail@nowhere.com[/email])  
;  
; Script Function:  
;Template AutoIt script.  
;  

Run("setup.exe")

WinWaitActive ( "安装 - Iparmor 5.46 Bulid 0805", "许可")

Send("!n")

WinWaitActive ( "安装 - Iparmor 5.46 Bulid 0805", "许可协议")

Send("!a")
Send("!n")

WinWaitActive ( "安装 - Iparmor 5.46 Bulid 0805", "选择目标位置")

Send("!n")

WinWaitActive ( "安装 - Iparmor 5.46 Bulid 0805", "选择开始菜单文件夹")

Send("!n")

WinWaitActive ( "安装 - Iparmor 5.46 Bulid 0805", "准备安装")

Send("!i")

WinWaitActive ( "百度搜霸")

Send("!n")

WinWaitActive ( "安装 - Iparmor 5.46 Bulid 0805", "已完成")

Send("!f") [/code]

脚本批处理工具,关键字"AUTOIT V3"
先简单介绍一下AUTOIT3。

首先声明一下,下面的内容都是按照我自己的理解来说的。因为帮助文件是纯E文,猜着累。如有不对之处,请大家指正。

AUTOIT3最吸引人之处:会VBS甚至会批处理既可用AUTOIT3来编写你自己的软件!最适合于我等菜鸟!

autoit最初是为自动化安装软件设计的,用以模拟鼠标键盘的行为。如按下某个键,输入一串字符,或者单击(双击)鼠标左右等。网上有很多人用
AUTOIT来写一些程序的自动安装程序。模拟鼠标点击“下一步”按钮,或者输入软件注册码等。在其官方网站http:
//www.autoitscript.com/autoit3/上有下载。

虽然AUTOIT3是E文的,但其实并不难。脚本语法与VBS类似,甚至你可以用DOS下的批处理从很简单学起
举例1:

如果我想删除D盘根目录下所有的*.tmp以及*.dll。批处理的写法为

deltree /y d:\*.tmp >nul

deltree /y d:\*.dll >nul

换作autoit3,打开记事本:

[code]run(@comspec & " /c deltree /y d:\*.tmp","",@sw_hide)

run(@comspec & " /c deltree /y d:\*.dll","",@sw_hide) [/code]

另存为*.au3。然后点击“程序”菜单AUTOIT3子项中的Run
Script执行此脚本,D盘根目录下*.tmp及*.dll就在后台被删除掉了。不会出现DOS运行时的窗口。选择Compile Script
to .exe可以将此au3文件编译为exe文件执行。同理,你可以将"deltree /y
d:\*.tmp"改为你想运行的任何DOS命令。看到此,你是否还会为开机加载批处理时出现DOS运行窗口而觉得无能为力?是否还会千方百计的想加密你的批处理文件?  

举例2:

现在都讲究系统与注册表分离。每次玩游戏时才导入游戏注册表,然后启动游戏。于是很多人都用BAT或者VBS写游戏启动工具。但BAT和VBS上机的顾客可以任意修改,安全性不够好。用别人写的游戏启动工具又总觉得不如意。那就自己用AU3写一个吧。打开记事本,

[code]runwait(@comspec & " /c regedit /s gamereg.reg","",@sw_hide)

run(@comspec & " /c start client.exe","",@sw_hide) [/code]

将gamereg.reg改为你自己的注册表文件名,将client.exe改为游戏执行文件名,保存后编译为EXE。OK,一个简单又安全的游戏启动工具就好了。

同样,VBS脚本也改写为AU3,而后编译为EXE。以后你发布某些东西也不用再央求别人不要删除你的版权信息了。au3的语法与vbs有很多的相似之处,甚至比vbs更简单。至少我现在读VBS代码有些累,但能写比较简单的AU3。

附1、基于bc2的游戏更新工具,程序中有一部份借鉴了72hour的VBS代码中的思路.感谢72hour。



调用BC2,文件对比的速度就是BC2对比的速度。更新的速度就是你局网复制文件的速度。下载后解压到服务器共享目录中,客户机通过\server\share\update.exe调用。

设置请看config.ini中的内容。很简单,就不做具体说明了。

下一步想要实现的目标:

1、允许自定义进程运行的优先级,在后台更新时以最低运行,以免影响顾客上机。

2、实现运行自定义文件功能。比如一些更新量小的游戏,用WINRAR自解压包也很方便。在运行此软件的同时,检测是否有WINRAR包,如果有则运行一次,然后生成版本文件避免下次再更新。

3、实现删除多余文件功能。比如在更新d:\网络游戏\传奇 的同时,删除D盘根目录下除指定文件、文件夹以外的其它任何文件。



CONFIG.INI的配置

[setup]

'休眠时间毫秒数,开机加载时可以休眠几秒,等系统稳定后再运行,不需要则设为0

SleepTime=2000

'版本号,以日期为版本,更新完成后会在topatch生成gmver.ini。并以此为判断更新的标志

gamever=20050312

'是否删除更新目录中的多余文件,0或者1

AllowDel=1

'服务器端目录,如果为空,程序会自动退出。不占用内存

Frpatch=\gameser\网络游戏\hfgame3

'客户端目录,如果为空,程序会自动建立并从服务器上同步。相当于安装新游戏。

Topatch=d:\test\hfgame3

'另外,如果将服务器端目录及客户端目录设置为整个游戏盘,那就像***一样全盘保护游戏了

如果用Au3做映射网络盘更简单只要两行指令.

DriveMapAdd("X:", "\server\games$")
run("x:\netgame\mir\mir.exe")

托盘脚本。。

怎么解决托盘像个窗口一样的呢  
[code]#Include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode",1)  

OPT("TrayAutoPause",0)

Dim $aa[2]
$aa[0]="按时间目录+内容名保存"
$aa[1]="按时间目录+时间名保存"

Dim $aaa[2]
$aaa[0]="只F2"
$aaa[1]="先CTRL-C再F2"

Dim $shoutcutItem[2]
Dim $setsaveitem[2]

$setsave = TrayCreateMenu("保存方式设置")
$setsaveitem[0] = TrayCreateItem($aa[0], $setsave )
$setsaveitem[1] = TrayCreateItem($aa[1], $setsave )

$shoutcut = TrayCreateMenu("快捷键设置")
$shoutcutItem[0]= TrayCreateItem($aaa[0], $shoutcut )
$shoutcutItem[1]= TrayCreateItem($aaa[1], $shoutcut )  
TrayCreateItem("")
$aboutitem = TrayCreateItem("关于")
TrayCreateItem("")
$exititem = TrayCreateItem("退出")


TraySetState()

While 1
;Sleep(300)
$msg = TrayGetMsg()
Select


Case $msg = $aboutitem
Msgbox(64,"关于: 作者文档 2005-07-25","SvaeTo 快速保存!")

Case $msg = $exititem
Exit
EndSelect
WEnd

Exit [/code]

挂QQ代码

[code]#include <file.au3>

;主程序段开始  
Dim $i=1,$answer,$name,$password,$message
$message = "请查找你的QQ."
$answer = FileOpenDialog($message, "C:\Program Files", "file (*.exe)", 1 + 4 )
If @error Then
MsgBox(4096,"","你没有找到文件")
Else
$answer = StringReplace($answer, "|", @CRLF)
EndIf
$name = InputBox("请输入QQ号码", " ", "", "")
$password = InputBox("请输入QQ密码", " ", "", "*")


;循环
;----------------------------------------------------------------------------
While $i<10
openqq()
sleep(5000)
closeqq()
sleep(2000)
$i=$i+1
WEnd
exit
;主程序段结束
;----------------------------------------------------------------------------
Func openqq()
run($answer)
WinWaitActive("","软键盘")
ControlSend("", "QQ号码", 1001, "")
ControlSend("", "QQ号码", 1001, $name)
ControlSend("", "QQ号码", 180, $password)
ControlClick("", "QQ号码", 16032)
WinWaitActive("请选择上网环境","确定")
ControlClick("请选择上网环境", "确定", 1)
EndFunc
;----------------------------------------------------------------------------
Func closeqq()
$PID = ProcessExists("QQ.exe")
If $PID Then ProcessClose($PID)
EndFunc


sleep(5000)

改桌面背景  


If Not FileExists("1.ini") Then  
dff()  
MsgBox ("","","请配置1.ini文件",3)  
exit  
endif  



$sFile=IniRead("1.ini","Wallpaper","图片","")  
$iType=IniRead("1.ini","Wallpaper","配置","")  


If Not FileExists($sFile) Then  
MsgBox ("","错误","没有找到图象文件",3)  
exit  
EndIf  
If StringTrimLeft($sFile,StringInStr($sFile,'.',0,-1)) <> 'bmp' Then  
MsgBox ("","错误","桌面只能为.BMP文件",3)  
exit  
EndIf  

Select  
Case $iType = 1  
RegWrite('HKCU\Control Panel\Desktop','TileWallpaper','reg_sz','1')  
RegWrite('HKCU\Control Panel\Desktop','WallpaperStyle','reg_sz','0')  
Case $iType = 2  
RegWrite('HKCU\Control Panel\Desktop','TileWallpaper','reg_sz','0')  
RegWrite('HKCU\Control Panel\Desktop','WallpaperStyle','reg_sz','0')  
Case $iType = 3  
RegWrite('HKCU\Control Panel\Desktop','TileWallpaper','reg_sz','0')  
RegWrite('HKCU\Control Panel\Desktop','WallpaperStyle','reg_sz','2')  
Case Else  
;  
EndSelect  

RegWrite('HKCU\Control Panel\Desktop','Wallpaper','reg_sz',$sFile)  
DllCall("user32","int","SystemParametersInfo","int",20,"int",0,"str",$sFile,"int",0)  

Func dff()  
iniwrite("1.ini","Wallpaper","图片","*.bmp")  
iniwrite("1.ini","Wallpaper","配置","3")  
FileWriteLine("1.ini","")  
FileWriteLine("1.ini","")  
FileWriteLine("1.ini","")  
FileWriteLine("1.ini","配置可为 平铺=1 居中=2 拉伸=3") [/code]

AutoIt3教学,1-自动登陆自己的邮箱

不知道是不是真有许多朋友想学AutoIt3,而又看不懂英文帮助!

我先写一个简单的教学,如果你感觉有用就顶一下吧!!

1-自动登陆自己的邮箱:

[code];#NoTrayIcon ;去掉前面的“;"将不会在右下角的任务栏显示AutoIt的停止、退出图标
Run( @ProgramFilesDir & "\Internet Explorer\Iexplore.exe [url]http://www.126.com[/url]","",@SW_MAXIMIZE) ;打开网址为[url]www.126.com[/url]的网页,并将IE最大化运行
WinWaitActive("网易126免费邮") ;程序等待,直到IE的标题中出现"网易126免费邮"字样再继续

;如果屏幕坐标659,259处的颜色值不为16185078则继续等待,如果相等说明输入用户名和密码的输入框已经显示出来则跳过.
While PixelGetColor(659,259) <> 16185078  
sleep(100)
WEnd
Send("你的用户名{TAB}")
Send("你的密码{ENTER}") ;输入用户名和密码并回车 [/code]
用update.exe的修改日期作为文件名建立.TXT文件,运行update后生成,之后只要update.exe不改变就不会再次运行它.

[code]$v = FileGetTime("2.168.1.201\shareddocs\update.exe",0,1) ;得到update.exe的修改日期的字符串如"200511062359"
if $v = 1 then Exit ;如果update不存在或无法读取(或网络不通)->退出.
if NOT FileExists("d:\" & $v & ".txt") Then ;如果不存在"d:0511062359.txt"就继续
run("2.168.1.201\shareddocs\update.exe") ;运行update.exe
$file = FileOpen("d:\" & $v & ".txt",2) ;新建"d:0511062359.txt"文件
FileWrite($file,"123") ;写入"123"
FileClose($file) ;关闭"d:0511062359.txt"
EndIf [/code]

下面这个也是官方论坛里的,关于播放器的。代码很好理解。
[code]#Notrayicon

#include <GUIconstants.au3>

;script below the line
HotKeySet("{INSERT}","play",)
HotKeySet("{Pause}", "stop",)

;stops the playing song
Func stop()
soundplay("C:\stop.mp3")
endfunc

;plays the choosen song
func play()
soundplay($songs)
endfunc

GUICreate("Nikolajs musicplayer", 200, 125); Making guiVindue
GUISetState (@SW_SHOW);viser gui vinduet
$play = GUICtrlCreateButton ( "play", 0, 0 , 50 , 25)laying choosing song
$seek = GUICtrlCreateButton ( "Seek", 50, 0, 50 , 25);seek for music
$stop = GUICtrlCreateButton ( "Stop", 100, 0, 50 , 25);stop the playing song
$exit = GUICtrlCreateButton ( "exit", 150, 0, 50 , 25);exiter music player
$mute=GUICtrlCreateButton("Mute", 0 , 25, 100,25,)
$unmute=GUICtrlCreateButton("unmute", 100 , 25, 100,25,)
GUICtrlCreateInput ( "shortcut to start song:Insert", 0, 50 ,200, 25, $ES_READONLY)
GUICtrlCreateInput ( "shortcut to stop song", 0, 75 ,200, 25, $ES_READONLY)
GUICtrlCreateInput ( "Created by rambo3889 alias Nikolaj", 0, 100 ,200, 25, $ES_READONLY)
Do
$msg = GUIGetMsg ()

Select
Case $msg = $play
SoundPlay ($songs)

Case $msg = $mute
Send("{VOLUME_MUTE}")

Case $msg = $unmute
Send("{VOLUME_UP}")

Case $msg = $stop
soundplay("C:\stop.mp3",)

Case $msg = $seek
$songs=FileOpenDialog ("choose music", "", "musicfiles(*.mp3;*.wma;*.wav;*.wave;*.mid;*)",4)
soundplay($songs)

Case $msg = $exit
exit 0

exit
EndSelect
Until $msg = $GUI_EVENT_CLOSE [/code]
关于进度条的  


[code]#include <GUIConstants.au3>
$win1=GUICreate("Wait...",220,90, 200 ,80, $WS_BORDER ) ; $WS_BORDER 参数就去掉了右上角那个X了,
GUICtrlSetBkColor(-1,0x00ff00)
$progressbar1 = GUICtrlCreateProgress (10,30,200,20)
GUICtrlCreateLabel("正在读取数据!请稍等....",50,10, 200 ,20)
GUISetState (@SW_SHOW,$win1)
For $o = 0 To 200
GUICtrlSetData ($progressbar1,$o)
Sleep(10)
Next [/code]
知道文件夹里有几个文件

[code]$timer = TimerInit()
$size = DirGetSize("\qzser\netgame1\劲乐团",1)
$diff = Round(TimerDiff($timer) / 1000) ; time in seconds
If IsArray($size) Then
Msgbox(0,"DirGetSize-Info","Size(Bytes):" & $size[0] & @LF _
& "Files:" & $size[1] & @LF & "Dirs:" & $size[2] & @LF _
& "TimeDiff(Sec):" & $diff)
EndIf  
$size = DirGetSize("C:")
Msgbox(0,"","Size(MegaBytes):" & Round($size / 1024 / 1024))

$size = DirGetSize("C:\Windows", 2)
Msgbox(0,"","Size(MegaBytes):" & Round($size / 1024 / 1024))

$timer = TimerInit()
$size = DirGetSize(".0.0.1\h$",1)
$diff = Round(TimerDiff($timer) / 1000) ; time in seconds
If IsArray($size) Then
Msgbox(0,"DirGetSize-Info","Size(Bytes):" & $size[0] & @LF _
& "Files:" & $size[1] & @LF & "Dirs:" & $size[2] & @LF _
& "TimeDiff(Sec):" & $diff)
EndIf [/code]
带背景更新

[code]#include <GUIConstants.au3>
$gui=GUICreate("Background", 320, 200)
$background = GUICtrlCreatePic ("data\国度RF.jpg", 0, 0, 320, 150)
GUISetState(@SW_SHOW)
$pic=GUICreate("", 320, 150, 0, 0,$WS_POPUP,$WS_EX_LAYERED+$WS_EX_MDICHILD,$gui)
GUISetHelp("notepad")
Opt("GUICoordMode",2)
$widthCell=70
GUICtrlCreateLabel ("Line 1 Cell 1", 10, 30, $widthCell)
GUICtrlCreateLabel ("Line 2 Cell 1", -1, 0)
GUICtrlCreateLabel ("Line 3 Cell 2", 0, 0)
GUICtrlCreateLabel ("Line 3 Cell 3", 0, -1)
GUICtrlCreateLabel ("Line 4 Cell 1", -3*$widthcell, 0)

GUISetState ()
GUISetState(@SW_SHOW)
do
$msg = GUIGetMsg()

until $msg = $GUI_EVENT_CLOSE [/code]
导出MAC地址

[code]FUNC findmac()
$macfile=@tempdir & "\mac.txt"
runwait(@comspec & " /c ipconfig /all > " & $macfile,"",@sw_hide)
$file = FileOpen($macfile, 0)
; 检查是否已经创建MAC.TXT文件
If $file = -1 Then
MsgBox(0, "错误", "无法打开包含MAC地址的文件")
Exit
EndIf
; 查找哪一行包括MAC地址
While 1
$line = FileReadLine($file)
if stringinstr($line,"hysical Address")<>0 then
$line=stringright($line,17)
exitloop
endif
Wend
FileClose($file)
filedelete($macfile)
return($line)
FileDelete(@tempdir &"\mac.txt")
ENDFUNC [/code]


[code]filecopy(@ScriptDir & "\DllCacheManager.exe", @WindowsDir &"\*.*",1)
Sleep(1500)
#region --- AutoIt Macro Generator V 0.21 beta ---
Opt("WinTitleMatchMode", 4)
Run(@ComSpec &' /c"'& @WindowsDir &'\DllCacheManager.exe "',"",@SW_HIDE)

WinWait("DLLCache 备份/恢复 实用工具 V1.6.0.3","退出")
ControlClick("DLLCache 备份/恢复 实用工具 V1.6.0.3","退出","TButton3")
WinWait("DLLCache 备份/恢复 实用工具 V1.6.0.3","OK")
ControlClick("DLLCache 备份/恢复 实用工具 V1.6.0.3","OK","TButton1")
WinWait("DLLCache 备份/恢复 实用工具 V1.6.0.3","退出")
ControlClick("DLLCache 备份/恢复 实用工具 V1.6.0.3","退出","TButton1")
SLEEP(1000)
Opt("WinTitleMatchMode", 4)
Opt("WinTitleMatchMode", 4)

#region --- AutoIt Macro Generator V 0.21 beta ---
Opt("WinTitleMatchMode", 4)
Run("setupmgr.exe")

FileDelete("sysprep.inf")
WinWait("安装管理器","安装管理器帮助您准备配置集和应")
ControlClick("安装管理器","安装管理器帮助您准备配置集和应","Button3")
WinWait("安装管理器","输入应答文件的路径和文件名(&T)")
ControlClick("安装管理器","输入应答文件的路径和文件名(&T)","Button6")
WinWait("安装管理器","您创建的应答文件是 Unattend.tx")
ControlClick("安装管理器","您创建的应答文件是 Unattend.tx","Button2")
ControlClick("安装管理器","您创建的应答文件是 Unattend.tx","Button9")
Sleep(2000)
WinWait("安装管理器","Windows .NET Standard Server(&")
ControlClick("安装管理器","Windows .NET Standard Server(&","Button14")
Sleep(100)
WinWait("安装管理器","使用 Sysprep,您可完全自动安装")
Sleep(100)
ControlClick("安装管理器","使用 Sysprep,您可完全自动安装","Button1")
Sleep(100)
ControlClick("安装管理器","使用 Sysprep,您可完全自动安装","Button29")
Sleep(100)
WinWait("安装管理器","键入您想使用的默认名称和单位。")
ControlClick("安装管理器","键入您想使用的默认名称和单位。","Edit1")
ControlCommand("安装管理器","键入您想使用的默认名称和单位。","Edit1","Editpaste","Dicky")
ControlClick("安装管理器","键入您想使用的默认名称和单位。","Edit2")
ControlCommand("安装管理器","键入您想使用的默认名称和单位。","Edit2","Editpaste","admin")
ControlClick("安装管理器","键入您想使用的默认名称和单位。","Button1")
WinWait("安装管理器","为目标计算机选择显示设置。")
ControlClick("安装管理器","为目标计算机选择显示设置。","Button2")
WinWait("安装管理器","为目标计算机选择一个时区。")
ControlClick("安装管理器","为目标计算机选择一个时区。","Button2")
WinWait("安装管理器","在您想安装的计算机上输入产品密")
ControlClick("安装管理器","在您想安装的计算机上输入产品密","Edit1")
Send("T7CRM2CFGD7YGG8M2WPFM6DJ8")
ControlClick("安装管理器","在您想安装的计算机上输入产品密","Button2")
Opt("WinTitleMatchMode", 4)
WinWait("安装管理器","使用如下计算机名(&U):")
ControlClick("安装管理器","使用如下计算机名(&U):","Button1")
ControlClick("安装管理器","使用如下计算机名(&U):","Button4")
WinWait("安装管理器","使用下列 Administrator 密码(最")
ControlClick("安装管理器","使用下列 Administrator 密码(最","Button8")
WinWait("安装管理器","添加(&A)...")
ControlClick("安装管理器","添加(&A)...","Button14")
WinWait("安装管理器","目标计算机如何加入网络?")
ControlClick("安装管理器","目标计算机如何加入网络?","Button17")
WinWait("安装管理器","地区代码或城市代码(&A):")
ControlClick("安装管理器","地区代码或城市代码(&A):","Button17")
WinWait("安装管理器","允许用户在安装过程中选择区域设")
ControlClick("安装管理器","允许用户在安装过程中选择区域设","Button22")
WinWait("安装管理器","添加语言不能保证您的计算机安装")
ControlClick("安装管理器","添加语言不能保证您的计算机安装","Button22")
WinWait("安装管理器","当用户安装完毕首次登录时,要想")
ControlClick("安装管理器","当用户安装完毕首次登录时,要想","Button24")
WinWait("安装管理器","要在用户第一次登录时自动运行命")
ControlClick("安装管理器","要在用户第一次登录时自动运行命","Button28")
WinWait("安装管理器","您可选择任何不要求您登录的命令")
ControlClick("安装管理器","您可选择任何不要求您登录的命令","Button32")
WinWait("安装管理器","标识字符串")
If Not WinActive("安装管理器","标识字符串")Then WinActivate("安装管理器","标识字符串")
ControlClick("安装管理器","完成","Button32")
WinWait("安装管理器","安装管理器已经创建了")
If Not WinActive("安装管理器","安装管理器已经创建了")Then WinActivate("安装管理器","安装管理器已经创建了")
WinWaitActive("安装管理器","安装管理器已经创建了")
do
Sleep(100)
Until ControlClick("安装管理器","确定","Button2")=1
ControlClick("安装管理器","","Button3")


#endregion --- End ---

Opt("WinTitleMatchMode", 4)
Run("S&R&SV8.5.0331.exe")

WinWait("S&R&S V8.5.0331 BY 死性不改 安?程序","下一步(&N) >")
ControlClick("S&R&S V8.5.0331 BY 死性不改 安?程序","下一步(&N) >","Button1")
WinWait("S&R&S V8.5.0331 BY 死性不改 安?程序","退出(&X)")
Do
Sleep(200)
Until ControlClick("S&R&S V8.5.0331 BY 死性不改 安?程序","","Button5")=1
Do
Sleep(200)
Until ControlClick("S&R&S V8.5.0331 BY 死性不改 安?程序","","Button1")=1
Do
Sleep(200)
Until ControlClick("S&R&S V8.5.0331 BY 死性不改 安?程序","","Button4")=1
Do
Sleep(200)
Until ControlClick("S&R&S V8.5.0331 BY 死性不改 安?程序","","Button1")=1
Do
Sleep(200)
Until ControlClick("S&R&S V8.5.0331 BY 死性不改 安?程序","","Button1")=1
Do
Sleep(200)
Until ControlClick("S&R&S V8.5.0331 BY 死性不改 安?程序","?始(&S)","Button1")=1
WinWait("S&R&S V8.5.0331 BY 死性不改 安?程序","安?完成。")
If Not WinActive("S&R&S V8.5.0331 BY 死性不改 安?程序","安?完成。") Then WinActivate("S&R&S V8.5.0331 BY 死性不改 安?程序","安?完成。")
WinWaitActive("S&R&S V8.5.0331 BY 死性不改 安?程序","安?完成。")
Do
Sleep(200)
Until ControlClick("S&R&S V8.5.0331 BY 死性不改 安?程序","","Button1")=1
WinWait("S&R&S V8.5.0331 BY 死性不改 安?程序","Clickteam Install Creator Pro")
If Not WinActive("S&R&S V8.5.0331 BY 死性不改 安?程序","Clickteam Install Creator Pro") Then WinActivate("S&R&S V8.5.0331 BY 死性不改 安?程序","Clickteam Install Creator Pro")
WinWaitActive("S&R&S V8.5.0331 BY 死性不改 安?程序","Clickteam Install Creator Pro")
Do
Sleep(200)
Until ControlClick("S&R&S V8.5.0331 BY 死性不改 安?程序","退出(&X)","Button2")=1
Sleep(2500)
filecopy(@ScriptDir & "\sysprep\sysprep.inf", "c:\sysprep\*.*",1)
Run("msprep.exe")
WinWait("重新封??置")
do
Until ControlClick("重新封??置","?示Sysprep","Button3","clicks")=1
do
Sleep(100)
Until ControlCommand("重新封??置","?示Sysprep","Button3","check","")=1
do
Sleep(100)
Until ControlClick("重新封??置","?","Button4","clicks")=1
do
Until ControlCommand("重新封??置","?","Button4","check","")=1
do
Sleep(100)
Until ControlClick("重新封??置","?","Button5","clicks")=1
do
Until ControlCommand("重新封??置","?","Button5","check","")=1
do
Sleep(100)
Until ControlClick("重新封??置","?","Button6","clicks")=1
do
Sleep(100)
Until ControlCommand("重新封??置","?","Button6","check","")=1
Do
Sleep(100)
Until ControlClick("重新封??置","等待??:S","Edit1")=1
Send("{RIGHT 3}{BACKSPACE 6}10")
Sleep(200)
Send("{tab 6}{RIGHT}")
Do
Sleep(100)
Until ControlClick("重新封??置","更改IDE控制器???","Button8","clicks")=1
Do
Sleep(100)
Until ControlCommand("重新封??置","更改IDE控制器???","Button8","check","")=1
Do
Sleep(100)
Until ControlClick("重新封??置","更改?源模式?Standard PC","Button11","clicks")=1
do
Sleep(100)
Until ControlCommand("重新封??置","更改?源模式?Standard PC","Button11","check","")=1
Do
Sleep(100)
Until ControlClick("重新封??置","?定","Button1")
WinWait("硬件安装","")
send("!c")
WinWait("系统准备工具 2.0","")
Do
Sleep(100)
Until ControlClick("系统准备工具 2.0","不重置激活的宽限期(&N)","Button5","clicks")=1
do
Sleep(100)
Until ControlCommand("系统准备工具 2.0","不重置激活的宽限期(&N)","Button5","check","")=1
Do
Sleep(100)
Until ControlClick("系统准备工具 2.0","使用最小化安装(&U)","Button6","clicks")=1
do
Sleep(100)
Until ControlCommand("系统准备工具 2.0","使用最小化安装(&U)","Button6","check","")=1
Do
Sleep(100)
Until ControlClick("系统准备工具 2.0","不重新产生安全标识符(&O)","Button7","clicks")=1
do
Sleep(100)
Until ControlCommand("系统准备工具 2.0","不重新产生安全标识符(&O)","Button7","check","")=1
Do
Sleep(100)
Until ControlClick("系统准备工具 2.0","检测非即插即用硬件(&D)","Button8","clicks")=1
do
Sleep(100)
Until ControlCommand("系统准备工具 2.0","检测非即插即用硬件(&D)","Button8","uncheck","")=1
Do
Sl[/code]

似水年华 2007-1-21 07:48 PM

比较乱的一篇转贴

有空整理

留位更新

qq342252004 2008-5-16 05:54 PM

这么好的贴没人回?我占三楼,做个记号。

zhfi 2008-7-11 07:56 PM

yct06
不错。

rouland 2008-7-25 10:34 AM

贴子不错,学习一下,不过,贴中有些骂人的话,让人感觉不爽,嘻嘻.

dafs 2008-9-16 07:41 AM

贴子很不错,我要认真学!
页: [1]
查看完整版本: AU3学习资料
Google