分类:
2010-11-29 13:52:18
使用Autoit V3过程中的一些经验
1.FlashFXP
#include
AdlibEnable("Reg")
Func Reg()
IF WinExists("FlashFXP v3.3.5 (build 1110) BETA Evaluation - 还剩 0 天") Then
ControlClick("FlashFXP v3.3.5 (build 1110) BETA Evaluation - 还剩 0 天","输入密钥...","TButton1")
Send("FLASHFXPzgDCZDFezgAAAADFW5etNQTnsl73n0FoZCZ4GRDMVE{ENTER}")
Send("IAF1TO4dC4/oQAtJaXbV8cdIugAQqLOgY{+}EOagxDoMU3lCMWQZ{ENTER}")
Send("HBS{+}NmnFTHDpsVb7AxScw8eSchiJ/zvcX3COuPEI{+}MTD6nsYC9{ENTER}")
Send("qNscCNAp/ThNthj85vlHAKN4SYc8Lyy8ioYMXxIirdnvpb1ZVd{ENTER}")
Send("TIu1v4ROrq8VbcLTZRGfWTtPWU1UXfZC30P61rli/uekEb31On{ENTER}")
Send("Gv3PfuNrNZsI7r4SmuRJX9tA=={ENTER}")
ControlClick("注册 FlashFXP v3.3.5 (build 1110) BETA","确定","TButton2")
WinWaitActive("FlashFXP","确定")
;ControlClick("FlashFXP","确定","Button1")
Send("{ENTER}")
EndIF
EndFunc
TrayTip("虫虫提示:", "安装本软件过程中请勿移动鼠标或者键盘", 5,1)
runwait("FlashFXP.exe /s")
runwait(@ProgramFilesDir & "FlashFXPFlashFXP.exe")
RunWait(@COMSPEC & " /c taskkill /F /IM FlashFXP.exe")
Exit
(1)send序列号的时候
因为里面有些+号,如果不注意,直接写进去,就会被send解释成SHIFT,因此出错,所以要使用{+}来表示+号;对于序列号换行不要忘记使用{ENTER},否则不会换行,直接输入!
(2)对于runwait("FlashFXP.exe /s")
如果使用run("FlashFXP.exe /s")的话,不等FlashFXP.exe /s执行完毕,就会执行runwait(@ProgramFilesDir & "FlashFXPFlashFXP.exe"),这个文件这时候根本就没有,肯定会报错啦!
(3)对于注册之后弹出来的对话框
老办法,使用系统自带的taskkill命令,非常好用!比Autoit写的WinKill等脚本要好很多!
LeapFTP的注册
(1)使用脚本以及注册机进行注册。
#include
AdlibEnable("Reg")
;AdlibEnable("Quit")
Func Reg()
IF WinExists("LeapFTP 2.7.4 - (未注册)") Then
Run(@ProgramFilesDir & "LeapFTPKeygen.exe")
WinWaitActive("Keygen for Leap FTP v2.7.2.592")
Send(@UserName & "{TAB}")
$sn=ControlGetText("Keygen for Leap FTP v2.7.2.592","","TEdit1")
Run(@COMSPEC & " /c taskkill /F /IM Keygen.exe")
WinActivate("LeapFTP 2.7.4 - (未注册)")
Send("!HR")
;WinWaitActive("注册 LeapFTP")
Send(@UserName & "{TAB}")
Send($sn)
Send("!O")
WinWaitActive("LeapFTP 2.7.4")
Send("{ENTER}")
ElseIF WinExists("LeapFTP 2.7.4") Then
Run(@COMSPEC & " /c taskkill /F /IM LeapFTP.exe")
EndIF
EndFunc
TrayTip("虫虫提示:", "安装本软件过程中请勿移动鼠标或者键盘", 5,1)
Runwait("LeapFTP.exe /s")
RunWait(@ProgramFilesDir & "LeapFTPLeapFTP.exe")
Exit
中间一定要注意Run以及RunWait的区别,例如,如果RunWait(@ProgramFilesDir & "LeapFTPLeapFTP.exe")
使用Run(@ProgramFilesDir & "LeapFTPLeapFTP.exe")的话,不进行任何操作,因为程序结束了
而Run(@COMSPEC & " /c taskkill /F /IM Keygen.exe")若改成
RunWait(@COMSPEC & " /c taskkill /F /IM Keygen.exe")则也不进行下面任何操作,因为还没有结束
(2)使用自解压Exe+Reg信息解决
Path=%ProgramFiles%
Setup=Regedit.exe /s LeapFTPsn.reg
Overwrite=2
Title=LeapFTP 2.7.4.602
偶然发现LeapFTP的注册信息是存在[HKEY_CURRENT_USERSoftwareLeapWareRegistryLeapFTP]
所以使用这种方法更可靠一些^_^
TuneUp Utilities 2006注册
RunWait(@ProgramFilesDir & "TuneUp Utilities 2006KeyGen.exe")
Send(@UserName & "{TAB}")
Send("BJTU{TAB}")
ControlClick("Tune Up Utilities 2006 v5.0.2326","&Generate","TspSkinButton2")
$sn=ControlGetText("Tune Up Utilities 2006 v5.0.2326","","TspSkinEdit1")
Send("!{F4}")
出来Keygen之后没有任何反映,主要是因为RunWait的使用,将其该为Run,并加入WinWaitActive("Tune Up Utilities 2006 v5.0.2326")
Run(@ProgramFilesDir & "TuneUp Utilities 2006KeyGen.exe")
WinWaitActive("Tune Up Utilities 2006 v5.0.2326")
Send(@UserName & "{TAB}")
Send("BJTU{TAB}")
ControlClick("Tune Up Utilities 2006 v5.0.2326","&Generate","TspSkinButton2")
$sn=ControlGetText("Tune Up Utilities 2006 v5.0.2326","","TspSkinEdit1")
Send("!{F4}")
获取注册码
$sn=ControlGetText("WinXP Manager 注册程序(V4.9.1) | [HK|oHKo]","随意填写,与程序里的“注册名","WindowsForms10.EDIT.app31")
误写作:
$sn=ControlGetText("WinXP Manager 注册程序(V4.9.1) | [HK|oHKo]","","WindowsForms10.EDIT.app31")
忽略了“TXT”选项
FlashFXP注册问题
对于未能注册的用户,使用脚本很好解决,但是对于已经注册了的用户则很难解决,因为已经注册了的窗口除了Title之外,没有任何可以识别的Text,这样根本就不能和未注册的分开,所以只好弃车保帅了,将已经注册用户的Flashfxp.key未注册的Flashfxp.key覆盖调,这样就可以很好的解决这个问题了,主要是在自解压包中实现的,将所有文件都覆盖,而用户配置文件FlashFXP.ini不放进去,这样就可以保留用户原有的配置文件FlashFXP.ini
#include
AdlibEnable("Reg")
Func Reg()
IF WinExists("FlashFXP v3.3.5 (build 1110) BETA Evaluation - 还剩 0 天") Then
ControlClick("FlashFXP v3.3.5 (build 1110) BETA Evaluation - 还剩 0 天","输入密钥...","TButton1")
Send("FLASHFXPzgDCZDFezgAAAADFW5etNQTnsl73n0FoZCZ4GRDMVE{ENTER}")
Send("IAF1TO4dC4/oQAtJaXbV8cdIugAQqLOgY{+}EOagxDoMU3lCMWQZ{ENTER}")
Send("HBS{+}NmnFTHDpsVb7AxScw8eSchiJ/zvcX3COuPEI{+}MTD6nsYC9{ENTER}")
Send("qNscCNAp/ThNthj85vlHAKN4SYc8Lyy8ioYMXxIirdnvpb1ZVd{ENTER}")
Send("TIu1v4ROrq8VbcLTZRGfWTtPWU1UXfZC30P61rli/uekEb31On{ENTER}")
Send("Gv3PfuNrNZsI7r4SmuRJX9tA=={ENTER}")
ControlClick("注册 FlashFXP v3.3.5 (build 1110) BETA","确定","TButton2")
WinWaitActive("FlashFXP","确定")
;ControlClick("FlashFXP","确定","Button1")
Send("{ENTER}")
;ElseIF WinExists("FlashFXP") Then
;MsgBox(4096,"Error","Error")
;ProcessClose("FlashFXP.exe")
;对于已经注册了的用户只能采取全部覆盖的方式,主要是覆盖Flashfxp.key,不把FlashFXP.ini放进去^_^保留用户设置
EndIF
EndFunc
TrayTip("虫虫提示:", "安装本软件过程中请勿移动鼠标或者键盘", 5,1)
Runwait("FlashFXP_3.exe /s")
Runwait(@ProgramFilesDir & "FlashFXPFlashFXP.exe")
ProcessClose("FlashFXP.exe")
Exit
自解压包的配置如下:
Path=%ProgramFiles%
Overwrite=1
Title=FlashFXP_3.3.5.1110_Beta_SC
学到的一点:
$Var<>""
<> 不等于
"" 空
chinaunix网友2010-11-30 10:41:58
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com