找回密码
 加入
搜索
查看: 3032|回复: 6

[系统综合] 关于捕获窗口后

  [复制链接]
发表于 2016-6-23 17:35:44 | 显示全部楼层 |阅读模式
我想捕获某些指定的窗口,当窗口出现的时候,自动摸拟按ESC的效果,我写了一段代码,但是运行以后,好像不断的再按ESC,导致不能操作其他的程序,请大侠们帮我修改一下,哪里错了
#AutoIt3Wrapper_UseX64=n  ;将程序编译为X86应用程序

While 1
If WinExists("龙管家计费系统","该二代证未注册,是否立即注册?") Then
        ;MsgBox(64,"未注册","捕获到未注册窗口")
        WinActivate("龙管家计费系统","该二代证未注册,是否立即注册?");激活未注册窗口
        Send("{ESC}")
        Sleep(1)
        Send("{ESC}")
ElseIf WinExists("龙管家计费系统","中心提示:此证件号已经被禁止使用") Then
        WinActivate("龙管家计费系统","中心提示:此证件号已经被禁止使用");激活禁止的窗口
        Send("{ESC}")
ElseIf WinExists("会员激活") Then
        WinActivate("会员激活");激活禁止的窗口
        Send("{ESC}")
Else
        
EndIf

WEnd
 楼主| 发表于 2016-6-28 14:34:25 | 显示全部楼层
好不容易审核通过了,没大神来指点一下吗?
发表于 2016-6-28 14:49:52 | 显示全部楼层
while 1是无限循环,没有终止条件,在你需要的地方加个ExitLoop就好了
发表于 2016-6-28 15:08:57 | 显示全部楼层

#AutoIt3Wrapper_UseX64=n

While 1
        Local $_Title = WinGetTitle("[ACTIVE]") ;需要根据title来判断
    If $_Title = "该二代证未注册,是否立即注册?" Then ;这个时候的窗口title是什么?龙管家计费系统?该二代证未注册,是否立即注册?
        WinActivate("该二代证未注册,是否立即注册?") ;这个时候的窗口title是什么?龙管家计费系统?该二代证未注册,是否立即注册?
        Send("{ESC}")
        Sleep(1000)
        Send("{ESC}")
    ElseIf $_Title = "中心提示:此证件号已经被禁止使用" Then ;这个时候的窗口title是什么?龙管家计费系统?中心提示:此证件号已经被禁止使用?
        WinActivate("中心提示:此证件号已经被禁止使用") ;这个时候的窗口title是什么?龙管家计费系统?中心提示:此证件号已经被禁止使用?
        Send("{ESC}")
    ElseIf $_Title = "会员激活" Then
        WinActivate("会员激活")
        Send("{ESC}")
    Else
           Sleep(5000)
    EndIf
WEnd


最好能提供这些情况的title截图或者信息
发表于 2016-6-28 16:05:02 | 显示全部楼层
按ESC有什么效果,关闭龙管家计费系统?
发表于 2016-6-28 16:18:46 | 显示全部楼层
按ESC有什么效果,关闭龙管家计费系统?
1361739590 发表于 2016-6-28 16:05


或許直接抓取窗口信息去關閉窗口比較好...
发表于 2016-7-6 12:30:51 | 显示全部楼层
Send命令前加SendKeepActive试试?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 21:12 , Processed in 0.076391 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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