找回密码
 加入
搜索
查看: 5113|回复: 21

无语了,来看看睁眼说瞎话的AU3

[复制链接]
发表于 2008-6-21 17:50:32 | 显示全部楼层 |阅读模式
我使用的版本是3.2.12.0.1的汉化版,今天用AU3来写“微点主动防御软件”的自安装脚本,卡在了第三步上,三步中哪一步都不是一次成功的,真的是一步一个坎儿。。。

  第一步:我在脚本中写入运行微点的命令后,直接输入一行“WINWAITACTIVE”就输入了执行下一步的命令,结果试运行脚本后没反应,试了几次后发现微点的安装窗口需要手动激活,于是改用“WINWAIT”、“WINACTIVATE”激活窗口,这一步还好,没费太大劲儿。(该死的微点,窗口在活动与非活动时的样式完全一样)

  第二步:仍是用“Winwaitactive”,然后用“Controlclick”输入从“AU3窗口信息工具”中得到的相应按键——BUTTON3,仍是没反应。我按第一步的更改尝试了一下,也试过了很多其它方法,依旧不行。  没理由的啊?我认真检查了上面输入的内容,没有任何问题。也算是病急乱投医吧,我无视 窗口信息工具 中得出的判断,将 BUTTON3 改成了 BUTTON4,没想到就是这样一改,竟然成功到了下一步!!!狂汗啊……

  第三步:这个我真的无语了,按照窗口信息工具中的提示,我填写按键为 BUTTON 5,结果竟然出现 是否结束安装程序 的画面,赫,难道AU3又分析错了?这次我从BUTTON1一直试到BUTTON10……无语了,每一个都不是与“同意”的选项正确对应的那一个,总是事与愿违,出现其它效果(原始的安装程序手动操作没有问题)……至此,我真的是黔驴技穷了……


    三步断肠……初学AU3的俺,早就听说过这东西有些难度,但万万没料到这么举步维艰!!!而且AU3的按键识别失误,是AU3的不成熟呢,还是微点的不兼容?以上情况属实,等待高手测试。(我认为通过坐标控制点击的方法或许能解决这个问题,有些人说这样会受到分辨率和人为拖动的影响,因此不够准确,但谁又能想到controlclick会出现这么大的失误呢?在一些地方找通过坐标发动鼠标点击的公式,很遗憾没找到,一律的理由都是说这样不准确,不如用controlclick。算啦,还是自己多学点,同时等高手解答吧)

[ 本帖最后由 hfsango1 于 2008-6-21 17:54 编辑 ]
发表于 2008-6-21 19:06:40 | 显示全部楼层
我试了下 微点主动防御软件 安装程序 的控件ID是会变的,这个比较难弄。

评分

参与人数 1金钱 +3 收起 理由
kakinkgb + 3 你真热心!

查看全部评分

 楼主| 发表于 2008-6-21 21:05:00 | 显示全部楼层
感谢LS朋友的尝试~现在我一见到安装界面很奇怪的程序心里就沉一下,因为这些程序的自动安装往往很难做,诸如 微点、REALPLAYER,还有一些版本的FOXIT READER
发表于 2008-6-21 22:04:37 | 显示全部楼层
AU3并不是万能的自动安装脚本。。。
发表于 2008-6-21 22:34:11 | 显示全部楼层
controlID可以是很多种的:
ID - The internal control ID. The Control ID is the internal numeric identifier that windows gives to each control. It is generally the best method of identifying controls. In addition to the AutoIt Window Info Tool, other applications such as screenreaders for the blind and Microsoft tools/APIs may allow you to get this Control ID
TEXT - The text on a control, for example "&Next" on a button (这种可以吧?)
CLASS - The internal control classname such as "Edit" or "Button"
CLASSNN - The ClassnameNN value as used in previous versions of AutoIt, such as "Edit1"
REGEXPCLASS - Control classname using a regular expression
X \ Y \ W \ H - The position and size of a control. (这种也可以吧?)
INSTANCE - The 1-based instance when all given properties match.
ControlClick麻烦,我最喜欢用send
发表于 2008-6-25 10:42:08 | 显示全部楼层
为什么一定要拿控件ID 来匹配了???
发表于 2008-6-25 11:13:15 | 显示全部楼层
查找一下控件文字为"同意"的 然后再点
这种问题不是au3的错哦,是lz的问题
发表于 2008-6-25 11:32:12 | 显示全部楼层
呵呵,学到东西了,原来还能这样
$Windows="微点主动防御软件    安装程序"
Run($T)
WinWait($Windows,"")
ControlClick($Windows, "", "[CLASS:Button; TEXT:下一步]","left")
发表于 2008-6-25 12:54:21 | 显示全部楼层
原帖由 kakinkgb 于 2008-6-21 22:34 发表
controlID可以是很多种的:
ID - The internal control ID. The Control ID is the internal numeric identifier that windows gives to each control. It is generally the best method of identifying controls. I ...


确实能解决楼主的问题。我也学到了,感谢!
run("微点安装.exe")
$hd="微点主动防御软件    安装程序"
WinWaitActive($hd,"语言选择")
ControlClick($hd,"语言选择","[CLASS:Button; TEXT:下一步]","left")
WinWaitActive($hd,"欢迎使用")
ControlClick($hd,"欢迎使用","[CLASS:Button; TEXT:下一步]","left")
WinWaitActive($hd,"许可证协议")
ControlClick($hd, "许可证协议", "[CLASS:Button; TEXT:同意]","left")
controlClick($hd, "许可证协议", "[CLASS:Button; TEXT:下一步]","left")
...............
发表于 2008-6-25 14:48:01 | 显示全部楼层
既然控件ID会变,那么可以每次执行这个程序都去找控件ID,这样不就好了。
发表于 2009-3-6 00:23:04 | 显示全部楼层
老兄,能否放出整个微点的脚本啊,我也卡在第三步了
run("微点mp.exe")
$hd="微点主动防御软件 安装程序"
WinWaitActive($hd,"语言选择")
ControlClick($hd,"语言选择","[CLASS:Button; TEXT:下一步]","left")
WinWaitActive($hd,"欢迎使用")
ControlClick($hd,"欢迎使用","[CLASS:Button; TEXT:下一步]","left")
WinWaitActive($hd,"许可证协议")
ControlClick($hd, "许可证协议", "[CLASS:Button; TEXT:同意]","left")
controlClick($hd, "许可证协议", "[CLASS:Button; TEXT:下一步]","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")


就后面输入的文本停下来了,请教~~~
发表于 2009-3-6 10:42:30 | 显示全部楼层
如果肯认真的看看帮助,而且能记住了里面的用法(虽然有时帮助也会乱),问题就会少了,办法就会多了!
发表于 2009-3-6 11:25:15 | 显示全部楼层
标题好像火爆了点...
发表于 2009-3-6 17:10:49 | 显示全部楼层
很多杀毒软件的控件ID名是动态的,就连QQ登录界面的都是这样,主要是防止病毒探测的。。。。
发表于 2009-3-6 18:08:52 | 显示全部楼层
原帖由 liongodmien 于 2009-3-6 10:42 发表
如果肯认真的看看帮助,而且能记住了里面的用法(虽然有时帮助也会乱),问题就会少了,办法就会多了!




我自己都很认真“研究”过帮助了,只是学识疏浅认识au又迟,万事起步难,如果哪位大侠能帮我解决微点安装脚本,我万分感激!!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-22 15:45 , Processed in 0.091316 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表