找回密码
 加入
搜索
查看: 1909|回复: 4

[AU3基础] 请教各位,如何判断一个程序窗口是否还有动作?如果动作结束,则winclose

[复制链接]
发表于 2013-11-23 09:48:09 | 显示全部楼层 |阅读模式
请教各位,如何判断一个程序窗口是否还有动作?如果动作结束,则winclose
我现在是用sleep来延时,然后结束进程来实现的,但是这样很不保险,有的机器慢,程序还没执行完就可能被关闭了
程序工作的内容是:运行程序后,用鼠标模拟来执行相关菜单,初始化SQL 2005数据库,完成的标志是会弹出来一个子窗口,这个子窗口没有标题,见下图:

程序主窗口:


程序菜单:


功能执行结束后弹出来的子窗口:


想达到的目的是:
脚本run这个程序后,等待这个程序弹出子窗口,然后关闭它们,再继续执行下面的代码。请教了,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-11-23 12:06:32 | 显示全部楼层
子窗口没有标题,可以以“类”,“文字内容”等等来区分。

实在没有办法时,用判断坐标的颜色吧,“登录”旁边的绿色就可以。
发表于 2013-11-23 13:17:15 | 显示全部楼层
do
    sleep(100)
until WinExists("")
 楼主| 发表于 2013-11-23 18:31:20 | 显示全部楼层
回复 3# fenhanxue

这样如果指定的窗口一直不出现的话,那脚本就会卡住。基于这样考虑,我用winwaitactive()函数来等到窗口激活,并且可以设置超时。
发表于 2013-11-23 21:13:03 | 显示全部楼层
回复 4# smooth


    或者在until 这里,再加一个计数器,如

do
   TimerInit()
  ......
until winexist  or TimerDiff() > (例如100秒)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 17:37 , Processed in 0.081822 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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