找回密码
 加入
搜索
查看: 6541|回复: 22

[AU3基础] [已解决]窗口探测器无法探测到控件,要怎么办?

 火.. [复制链接]
发表于 2015-12-8 15:37:01 | 显示全部楼层 |阅读模式
本帖最后由 xing999999 于 2015-12-15 14:38 编辑

以最新的QQ管家为例,他安装其实很简单,就只有那么2,3步,但问题是他每一步窗口探测器都无法探测到控件。每一步探测到的窗口标题都一样。。这要怎么搞?


Run("QQPCMgr.exe")
WinWaitActive("电脑管家 安装向导")
Send("{ENTER}")
Sleep(50000)
Send("{ENTER}")
WinWaitActive("电脑管家")
Send("!{F4}")

我写出来的,偶尔可以,但我也知道非常不稳定,因为等50秒,然后发送回车键,这个太不稳定。
发表于 2015-12-8 22:07:42 | 显示全部楼层
这类窗口我也是是没办法,我是用模拟鼠标搞定!
 楼主| 发表于 2015-12-9 09:52:01 | 显示全部楼层
回复 2# tjztbk

模拟鼠标,相对位置吗?

我看到有说句柄什么的,对这个有帮助吗?获取句柄的命令是什么能否说下。
 楼主| 发表于 2015-12-9 10:06:48 | 显示全部楼层
有谁能够说一下吗?或者给我指个方向也行。
 楼主| 发表于 2015-12-9 10:53:52 | 显示全部楼层
有没好好的方法呢?遇见这问题应该是很多人才对啊。
 楼主| 发表于 2015-12-9 11:07:44 | 显示全部楼层
能否有高手指导下,如果不方便,不需要详细的代码,指明下方向即可。
发表于 2015-12-9 13:50:16 | 显示全部楼层
据说借助一些工具的帮忙可以挺方便地编写脚本,合不合适你就不知道了。
http://www.autoitx.com/forum.php ... &from=favorites
 楼主| 发表于 2015-12-9 17:28:19 | 显示全部楼层
这个和我说的不是一回事吧
发表于 2015-12-9 19:20:23 | 显示全部楼层
学习了  新手入门 感谢分享
 楼主| 发表于 2015-12-10 00:13:57 | 显示全部楼层
你学习了啥。。我倒。。。我还以为有人回答了问题。兴致勃勃的冲进来。。。
发表于 2015-12-13 11:19:04 | 显示全部楼层
非标控件探测不出来的
 楼主| 发表于 2015-12-13 15:29:37 | 显示全部楼层
那要用什么方法可以准确的点击到这个按钮,或者选择到这个控件呢
发表于 2015-12-14 10:30:43 | 显示全部楼层
鼠标模拟吧,如果是单机的话;
如果批量多台机器,那就不好办了
发表于 2015-12-14 12:29:09 | 显示全部楼层
LZ这么多天没有进展吗?搜索自动化操作(安装脚本)相关帖子吗?
找特征,比如窗口任何字符串变化、矩形范围颜色变化、窗口句柄变化等等。
发表于 2015-12-14 15:00:29 | 显示全部楼层
QQ管家版本号PCMgr_Setup_11_1_16908_217,测试代码如下:

;存在安装进程,直接结束,方便调试
If ProcessExists("PCMgr_Setup_11_1_16908_217.exe") Then ProcessClose("PCMgr_Setup_11_1_16908_217.exe")
;运行程序
Run("PCMgr_Setup_11_1_16908_217.exe")

$title = "电脑管家安装"
$text = "继续安装需要关闭实时防护,是否要继续?"

;存在QQ管家实时防护进程,说明已经安装了。弹出的这个窗口很难操控,有时成功,有时不成功,干脆弹出提示要求手点!
If ProcessExists("QQPCRTP.exe") Then
        TrayTip('QQ实时防护已经开启', "QQ管家实时防护开启,很多操作弄不了。" & @CRLF & "请手动点是,10秒内不点脚本退出!", 1)
        ;等待窗口出现开始计时
        WinWait($title, $text)
EndIf
$title = "电脑管家 安装向导"
$text = $title

;10秒内不出窗口,就超时,下面if就不成立
If WinWait($title, $text, 10) Then
        ;清空上面的traytip提示。
        TrayTip("清空提示", "", 1)

        ;需要修改路径,可以启用下面的代码
;~ ControlClick($title,$text,"ATL:005138B01","",1,59,651)
;~ Sleep(500)
;~ ControlSetText($title,$text,"CEagleEdit1","C:\Program Files (x86)\Tencent\QQPCMgr\")

        ;点击 带我飞 装逼!
        ControlClick($title, $text, "ATL:005138B01", "", 1, 444, 490)

        While 1
                Sleep(500)
                ;不断的获取QQ管家安装窗口的位置和大小,如果大小为370*600时,表示安装完成
                $WinPos = WinGetPos($title, $text)
                If IsArray($WinPos) Then
                        ;宽度为370,高度为600时
                        If $WinPos[2] = 370 And $WinPos[3] = 600 Then ExitLoop
                EndIf
        WEnd
        Sleep(100);少量的等待,以防电脑卡的人点不到。
        ;点击完成
        ControlClick($title, $text, "ATL:005138B01", "", 1, 189, 452)
        
        
        If WinWait("电脑管家新功能", "", 3) Then
                WinActivate("电脑管家新功能", "")
                
                $WinPos = WinGetPos("电脑管家新功能", "")
                ;获取鼠标位置并保存
                $MousePos = MouseGetPos()
                MouseClick("", $WinPos[0] + 727, $WinPos[1] + 467, 1, 0)
                ;鼠标移回原处
                MouseMove($MousePos[0], $MousePos[1], 0)
        EndIf
EndIf
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 07:05 , Processed in 0.078979 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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