微点的自动安装脚本【一大难题】
本帖最后由 lynfr8 于 2009-7-10 13:57 编辑希望有高手能写出整个微点的脚本run("微点mp.exe")
$hd="微点主动防御软件 安装程序"
WinWaitActive($hd,"语言选择")
ControlClick($hd,"语言选择","","left")
WinWaitActive($hd,"欢迎使用")
ControlClick($hd,"欢迎使用","","left")
WinWaitActive($hd,"许可证协议")
ControlClick($hd, "许可证协议", "","left")
controlClick($hd, "许可证协议", "","left")
WinWaitActive($hd,"输入您的信息。");从这个界面开始脚本无法反应
ControlSetText($hd, "输入您的信息。", "Edit1", "007")
ControlSetText($hd, "输入您的信息。", "Edit2", "007")
ControlSetText($hd, "输入您的信息。", "Edit3", "8A2E9Z")
ControlSetText($hd, "输入您的信息。", "Edit4", "UK8EP9")
ControlSetText($hd, "输入您的信息。", "Edit5", "WV8EJD")
ControlSetText($hd, "输入您的信息。", "Edit6", "U8LC63");以上注册信息无法自动修改录入
如果把窗口检测信息工具把鼠标放到图片上就可以看到标题:微点主动防御软件 安装程序
放到注册信息就不能检测到标题了
就卡在这里了,后面的脚本也无法完成
....
再补充今天战果
终于第三步可以跨越过去了(就是输入注册信息那一部分)
居然问题出现Edit的枚举那里,我把窗口信息工具获取的Edit1改成3,2改成4,以此类推
居然可以顺利ControlSetText并send("{enter}")就可以下一步了
选择微点程序的安装文件夹---这一步也很轻松send("{enter}")就过了
问题又来了
WinActive($hd,"现有文件夹:")----这一步有无法控制button2到下一步了
真是见鬼了
然后胡乱尝试一下居然重复语句ControlSetText($hd,"现有文件夹:", "Edit2", "管理工具")
ControlClick($hd,"现有文件夹:","","left")
ControlSetText($hd,"现有文件夹:", "Edit2", "管理工具")
ControlClick($hd,"现有文件夹:","","left")能到下一步了
天啊!!!!!!!
是我太蠢还是微点太鬼魅了????
问题又出现了
看图:>>>> 窗口 <<<<
标题:
类: #32770
坐标: 627, 288
大小: 348, 317
样式: 0xD0000044
扩展样式: 0x00000000
句柄: 0x000B040C
>>>> 控件 <<<<
类: SysListView32
枚举: 1
类别名: SysListView321
ID: 281
文本: List1
坐标: 10, 50
大小: 313, 202
控件坐标: 45, 66
样式: 0x50010001
扩展样式: 0x00000204
句柄: 0x00060462
>>>> 可见文本 <<<<
请进行初始设置,或按“下一步”应用默认设置。
初始设置
下一步
取消
List1附上最新代码run("微点mp.exe")
$hd="微点主动防御软件 安装程序"
WinWaitActive($hd,"语言选择")
ControlClick($hd,"语言选择","","left")
WinWaitActive($hd,"欢迎使用")
ControlClick($hd,"欢迎使用","","left")
WinWaitActive($hd,"许可证协议")
ControlClick($hd, "许可证协议", "","left")
controlClick($hd, "许可证协议", "","left")
WinActive($hd,"请输入您的用户名和所在公司的名称及产品序列号")
controlClick($hd, "许可证协议", "","left")
WinActive($hd,"请输入您的用户名和所在公司的名称及产品序列号")
ControlSetText($hd, "请输入您的用户名和所在公司的名称及产品序列号", "Edit3", "aaa")
ControlSetText($hd, "请输入您的用户名和所在公司的名称及产品序列号", "Edit4", "aaa")
ControlSetText($hd, "请输入您的用户名和所在公司的名称及产品序列号", "Edit5", "000000")
ControlSetText($hd, "请输入您的用户名和所在公司的名称及产品序列号", "Edit6", "111111")
ControlSetText($hd, "请输入您的用户名和所在公司的名称及产品序列号", "Edit7", "000000")
ControlSetText($hd, "请输入您的用户名和所在公司的名称及产品序列号", "Edit8", "U8LC63")
send("{enter}")
WinActive($hd,"选择微点程序的安装文件夹")
send("{enter}")
WinActive($hd,"安装程序将在以下文件夹安装微点主动防御软件,要安装到此文件夹,请单击“下一步”。要安装到其它文件夹,请单击【浏览】然后选择其它文件夹。")
send("{enter}")
WinActive($hd,"现有文件夹:")
ControlSetText($hd,"现有文件夹:", "Edit2", "管理工具")
ControlClick($hd,"现有文件夹:","","left")
ControlSetText($hd,"现有文件夹:", "Edit2", "管理工具")
ControlClick($hd,"现有文件夹:","","left")
另外,不知道是不是微点在安装时候有hook自我保护,
我脚本安装前部分(即注册信息成功之后选择安装文件夹之前)
然后手动安装后面的设置,居然得到提示:
天啊,我真的无语了
几天的苦拼,还是如此收场....:face (36):
更可恶的是
彻底的没办法了,乖乖手动重新安装了
~~~唉....
回复 1# lynfr8 的帖子
:face (3):[ 本帖最后由 131738 于 2009-3-10 00:26 编辑 ] 我是新手,请楼上告诉我哪个地方错了 原帖由 131738 于 2009-3-9 01:47 发表 http://www.autoitx.com/images/common/back.gif
第4句这样写:
ControlClick($hd,"语言选择","Button2")
你那写法严重错误!
看看这贴!!
http://www.autoitx.com/forum.php?mod=viewthread&tid=140&extra=page%3D2
问一句:你那序列号能通过注册吗?
ControlClick($hd,"语言选择","Button2")
你那写法严重错误!-----------这句话我不同意,请看:
http://www.autoitx.com/forum.php?mod=viewthread&tid=1330&page=1
至于注册码,呵呵,我的是预升级,所以部分注册码修改掩饰过了,如果你需要,帮我搞定这个脚本,我愿意赠予你真正的预升级注册码(也是我唯一的一个),为了这个脚本我愿意用回普通的试用90天注册码。
恳请各路英雄解疑
这个脚本的变化控件ID有很代表性的意义
能攻克这也是对自动安装的莫大贡献啊
[ 本帖最后由 lynfr8 于 2009-3-9 12:02 编辑 ] 虽然很丧气,基本放弃自动安装了,但还是希望有牛人能解决这个“难题”(对于菜鸟的我而言) 我临时不用微点。。。无经验可谈~~~~ 都没获取输入框的控件...怎么输入啊? 测试版本:1.2.10580.1
测试环境:Win XP 精简版
脚本版本:3.3.0.0
#RequireAdmin
#AutoIt3Wrapper_Run_Debug_Mode = y
Global $T1 = '', $T2 = '', _
$T3 = '', $text = ['安装向导将在计算机中安装微点主动防御软件', _
'请仔细阅读下面的许可证协议', '输入您的信息。', '选择微点程序的安装文件夹', '程序文件夹:', '复制文件前请查看设置。']
Run('mp.exe')
WinWait($T1)
Sleep(500) ;延时大或小,用与不用,自定
For $i = 0 To 5
ControlClick($T1, '', '')
If $i = 0 Then
WinWait($T1, $text[$i], 2)
If WinExists($T3) Then
Sleep(1e3)
ControlClick($T3, '', '')
Exit
EndIf
Else
WinWait($T1, $text[$i])
Sleep(500) ;延时大或小,用与不用,自定
EndIf
If $i = 1 Then
ControlCommand($T1, '', '', 'check', '') ;这里的‘ID’是需要在多机器上确定是否不变
EndIf
If $i = 3 And WinExists($T2) Then ControlClick($T2, '', '')
Next
ControlClick($T1, '', '')
回复 8# liongodmien 的帖子
太感谢你了!一直在观察有否高手出招相助
马上去试试
再次感激!!
感激!!! 此为完全安装脚本代码,前提条件同上
#RequireAdmin
#AutoIt3Wrapper_Run_Debug_Mode = y
Global $T1 = '', $T2 = '', _
$T3 = '', $text = ['安装向导将在计算机中安装微点主动防御软件', _
'请仔细阅读下面的许可证协议', '输入您的信息。', '选择微点程序的安装文件夹', '程序文件夹:', '复制文件前请查看设置。']
;~ #cs
Run('mp.exe')
WinWait($T1)
WinActivate($T1)
SendKeepActive($T1)
Sleep(500) ;延时大或小,用与不用,自定
For $i = 0 To 5
Send('{enter}')
If $i = 0 Then
Do
Sleep(90)
If WinExists($T1, $text[$i]) Then ExitLoop
If WinExists($T2) Then
ControlClick($T2, '', '')
;~ Exit
EndIf
Until 0
Else
WinWait($T1, $text[$i])
Sleep(500) ;延时大或小,用与不用,自定
EndIf
If $i = 1 Then
ControlCommand($T1, '', '', 'check', '') ;这里的‘ID’是需要在多机器上确定是否不变
EndIf
If $i = 2 Then
ControlSetText($T1, "", "", "007")
ControlSetText($T1, "", "", "007")
ControlSetText($T1, "", "", "AJ3856")
ControlSetText($T1, "", "", "I2SRH7")
ControlSetText($T1, "", "", "CILN42")
ControlSetText($T1, "", "", "3M5GYG")
EndIf
If WinExists($T2) Then ControlClick($T2, '', '')
Next
;~ Send('{enter}')
ControlClick($T1, '', '')
WinWait($T1, '初始设置')
Sleep(500) ;延时大或小,用与不用,自定
Send('{enter}')
WinWait($T3)
ControlClick($T3, '', '')
WinWait($T2)
ControlClick($T2, '', '')
Sleep(500) ;延时大或小,用与不用,自定
ControlClick($T1, '', '')
WinWait($T2, '', '本程序需要重新启动计算机,是否现在重启?')
Sleep(500) ;延时大或小,用与不用,自定
ControlClick($T2, '', '')
>"E:\autoit3\SciTe\ACNWrapper\ACNWrapper.exe" /run /ErrorStdOut /in "G:\深度软安器\E办公应用\微点\000.au3" /autoit3dir "E:\autoit3" /UserParams
+>19:41:22 开始执行 ACNWrapper v.1.10.1.12
+>执行环境:
+> 系统语言: 0804
+> 键盘布局: 00000804
+> 操作系统: WIN_XP/Service Pack 3
+> CPU: X86
+> IP地址: 169.254.93.122
>运行 AU3Check (1.54.14.0)开始目录:E:\autoit3
+>19:41:22 AU3Check 结束:0
>运行:(3.3.0.0):E:\autoit3\autoit3.exe "G:\深度软安器\E办公应用\微点\000.au3"
!> 开始于调试模式..
行: @error-@extended: 行表达式
0001: 0-0: #RequireAdmin
0002: 0-0: #AutoIt3Wrapper_Run_Debug_Mode = y
0004: 0-0: Global $T1 = "", $T2 = "", $T3 = "", $text = ["安装向导将在计算机中安装微点主动防御软件", "请仔细阅读下面的许可证协议", "输入您的信息。", "选择微点程序的安装文件夹", "程序文件夹:", "复制文件前请查看设置。"]
0008: 0-0: Run("mp.exe")
0009: 0-0: WinWait($T1)
0010: 0-0: WinActivate($T1)
0011: 0-1: SendKeepActive($T1)
0012: 0-0: Sleep(500) ;延时大或小,用与不用,自定
在多机器上确定是否不变0013: 0-0: For $i = 0 To 5
0014: 0-0: Send("{enter}")
0015: 0-0: If $i = 0 Then
0016: 0-0: Do
0017: 0-0: Sleep(90)
0018: 0-0: If WinExists($T1, $text[$i]) Then ExitLoop
0024: 0-0: Else
0028: 0-0: If $i = 1 Then
0031: 0-0: If $i = 2 Then
0039: 0-0: If WinExists($T2) Then ControlClick($T2, "", "")
F)0040: 0-0: Next
0014: 0-0: Send("{enter}")
0015: 0-0: If $i = 0 Then
0025: 0-0: WinWait($T1, $text[$i])
0026: 0-0: Sleep(500) ;延时大或小,用与不用,自定
?????剃?)?0027: 0-0: EndIf
0028: 0-0: If $i = 1 Then
0029: 0-0: ControlCommand($T1, "", "", "check", "") ;这里的‘ID’是需要在多机器上确定是否不变
导将在计算机中安装微点主动防御软件', 0030: 0-0: EndIf
0031: 0-0: If $i = 2 Then
0039: 0-0: If WinExists($T2) Then ControlClick($T2, "", "")
CR0040: 0-0: Next
0014: 0-0: Send("{enter}")
0015: 0-0: If $i = 0 Then
0025: 0-0: WinWait($T1, $text[$i])
+>19:44:55 AutoIT3.exe 完成::0
+>19:44:56 ACNWrapper 完成!
>退出代码: 0 时间: 214.724
==================================== 应该不难,获取不到标题大不了用绝对地址鼠标点击 神人啊,不懂 哇塞!!厉害厉害!!超级崇拜 呵呵 弄得我都有点不好意思了呵呵 真心没看懂,。。。。。。。。
页:
[1]