找回密码
 加入
搜索
查看: 5499|回复: 5

[AU3基础] 关于WinWaitActive 无法获取窗口。。[已解决]

[复制链接]
发表于 2011-5-25 19:53:41 | 显示全部楼层 |阅读模式
本帖最后由 icer2 于 2011-5-26 16:40 编辑

点击开始安装后,没有到最后一步的窗口,就已经把脚本运行完成了..

使用 WinWaitActive("易飞 ERP 系统客户端安装向导","完成安装");
无法获取

使用 WinWaitActive("[Class:YIFEI_SETUPGUID]", "")
其中整个安装过程的窗口类均为: YIFEI_SETUPGUID,亦无法获取

使用 WinWaitActive("[Class:YIFEI_SETUPGUID]", "完成安装")
其中整个安装过程的窗口类均为: YIFEI_SETUPGUID,加上了文本标题,亦无法获取

使用 WinWaitActive("[Class:TMemo]", "")
其中TMemo为单独的控件类,即使加上了该控件接口:1,亦是无法获取

我把能用的办法都试了 还是不行...


请各位高手帮帮忙,一下是全文代码:
;本脚本由i-Autoit-1.01 正式版 生成 ,非常感谢您的使用,请保留此脚本声明!  2011年05月25日

;--------------------------------------------------------------;脚本开始
Opt("TrayIconDebug", 1) ;0=无信息, 1=调试信息
Opt("WinTextMatchMode", 2) ;1=完全匹配, 2=快速匹配
Opt("WinTitleMatchMode", 4) ;1=开头, 2=子串, 3=完全, 4=高级
Opt("WinSearchChildren", 1) ;0=不搜索, 1=搜索子窗口
Opt("WinDetectHiddenText", 1) ;0=不检测, 1=检测
;--------------------------------------------------------------;设置脚本参数
$WinTitle_1= '易飞 ERP 系统客户端安装向导'
$WinTitle_2= '易飞程序更新精灵-ver: 7.0.0.0'
$Wintxt_0= ''
$Wintxt_1= '下一步 ->'
$Wintxt_2= '自定义安装/升级'
$Wintxt_3= '跳过此步'
$Wintxt_4= '开始安装 ->'
;--------------------------------------------------------------;窗口元素变量声明


$Exe = '\\10.1.2.20\soft\erp\ERP70\ERp70\LeaderSetup.exe'
If ProcessExists($Exe) Then ProcessClose($Exe)
If Run($Exe) = 0 Then ShellExecute($Exe)

Do
        Sleep(10);
Until WinExists($Wintitle_1)
;WinMove($Wintitle_1, "", -1000, -1000)
;--------------------------------------------------------------;程序启动,显示界面
WinWaitActive("易飞 ERP 系统客户端安装向导","取消")
Opt("MouseCoordMode", 0)
MouseClick ( "left",300,400)

WinWaitActive($Wintitle_1, $Wintxt_1);
ControlClick($Wintitle_1, $Wintxt_1, "TRadioButton2");---------------;点击按钮控件: 我同意以上许可协议中所有条款

WinWaitActive($Wintitle_1, $Wintxt_1);
ControlClick($Wintitle_1, $Wintxt_1, "TBitBtn2");---------------;点击按钮控件: 下一步 ->


WinWaitActive($Wintitle_1, $Wintxt_2);
ControlSetText($Wintitle_1, $Wintxt_2, "TDsBtnEdit1", "D:\Conductor70");------;重置文本框控件文本
ControlSetText($Wintitle_1, $Wintxt_2, "TDsEdit1", "10.1.2.6");------;重置文本框控件文本
ControlClick($Wintitle_1, $Wintxt_2, "TBitBtn2");---------------;点击按钮控件: 下一步 ->


WinWaitActive($Wintitle_1, $Wintxt_4);
ControlClick($Wintitle_1, $Wintxt_3, "TBitBtn2");---------------;点击按钮控件: 开始安装 ->

WinWait("易飞 ERP 系统客户端安装向导","完成安装");
ControlClick("易飞 ERP 系统客户端安装向导","完成安装","TRadioButton3")
ControlClick("易飞 ERP 系统客户端安装向导","完成安装","TBitBtn2")
 楼主| 发表于 2011-5-25 21:09:40 | 显示全部楼层
有知道的朋友吗?

给个提示也好啊..

我现在好困惑...
发表于 2011-5-26 09:54:01 | 显示全部楼层



Do
        Sleep(10)
Until WinExists("易飞 ERP 系统客户端安装向导","完成安装") = True
ControlClick("易飞 ERP 系统客户端安装向导","完成安装","TRadioButton3")

ControlClick("易飞 ERP 系统客户端安装向导","完成安装","TBitBtn2")

试试

评分

参与人数 1金钱 +10 收起 理由
icer2 + 10 虽然没有正确,但 谢谢了。。

查看全部评分

 楼主| 发表于 2011-5-26 11:53:34 | 显示全部楼层
回复 3# 都市浪子666


貌似不行额...

一样的,一点击开始安装  脚本就结束了。。

根本不让等到最后一步的窗口..

不知道用高级模式和控件句柄 有没有用..

高手,给个例子啊。。。
 楼主| 发表于 2011-5-26 13:46:56 | 显示全部楼层
最新测试结果:
WinWaitActive("[Class:YIFEI_SETUPGUID]", "")
WinWaitActive("[Class:YIFEI_SETUPGUID]", "完成安装")
WinWaitActive("[Class:TMemo]", "")

换成以上三条用法 还是不行。。。
 楼主| 发表于 2011-5-26 16:39:50 | 显示全部楼层
好吧, 经过我的苦思之后 终于想到一个办法.

整个软件整个过程的窗口类 不都是一样的么.

行,我就写一个 检测这个窗口是否存在,如果存在 则在 x,y 坐标 循环点击鼠标。

直到循环结束为止..

我开始自己写了
If WinExists("[CLASS:YIFEI_SETUPGUID]")Then
MouseClick ( "left",386,500,1,3)
Sleep(1000);
EndIf
发现有问题, 只检测一遍就执行完毕了..
看来这是写反了..

之后找群里的 无所谓的蛋蛋,帮忙写好了。
现在分出来吧..
do
MouseClick ( "left",386,500,1,3)
Sleep(10000);
until not(winexists("[CLASS:YIFEI_SETUPGUID]"))
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-2 03:27 , Processed in 0.123135 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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