Chinaunix首页 | 论坛 | 博客
  • 博客访问: 648891
  • 博文数量: 107
  • 博客积分: 4135
  • 博客等级: 上校
  • 技术积分: 1182
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-06 16:01
文章分类

全部博文(107)

文章存档

2020年(2)

2012年(5)

2011年(6)

2010年(23)

2009年(17)

2008年(35)

2007年(19)

我的朋友

分类:

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<>""
<> 不等于
"" 空

阅读(5136) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-30 10:41:58

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com