jmdfwy 发表于 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

jmdfwy 发表于 2016-6-28 14:34:25

好不容易审核通过了,没大神来指点一下吗?

ma395311229 发表于 2016-6-28 14:49:52

while 1是无限循环,没有终止条件,在你需要的地方加个ExitLoop就好了

ma395311229 发表于 2016-6-28 15:08:57


#AutoIt3Wrapper_UseX64=n

While 1
        Local $_Title = WinGetTitle("") ;需要根据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截图或者信息

1361739590 发表于 2016-6-28 16:05:02

按ESC有什么效果,关闭龙管家计费系统?

mysiap 发表于 2016-6-28 16:18:46

按ESC有什么效果,关闭龙管家计费系统?
1361739590 发表于 2016-6-28 16:05 http://www.autoitx.com/images/common/back.gif

或許直接抓取窗口信息去關閉窗口比較好...{:1_409:}

Wh1t3 发表于 2016-7-6 12:30:51

Send命令前加SendKeepActive试试?
页: [1]
查看完整版本: 关于捕获窗口后