caney 发表于 2008-5-31 22:21:44

循环执行多个WinWaitActive 出现拒绝执行

While 1
      WinWaitActive("重要提示", "")       
      WinKill("重要提示", "")
      WinWaitActive("特别提示", "")       
      WinKill("特别提示", "")
WEnd
经常在WinWaitActive("重要提示", "") 卡住。。。。不会执行下一步,即WinKill("重要提示", ""),激活窗口也不行。
而单独执行
While 1
      WinWaitActive("重要提示", "")       
      WinKill("重要提示", "")
WEnd

While 1
      WinWaitActive("特别提示", "")       
      WinKill("特别提示", "")
WEnd
都万试万爽。
      WinKill("重要提示", "")这句我有试过 WinSetState ( ("重要提示", "", @SW_HIDE )及ControlClick("重要提示", "确定", "Button1")还有WinClose("重要提示", "")
甚至我还:
While 1
        if WinWaitActive("重要提示", "") Then
        ControlClick("重要提示", "确定", "Button1")
    ElseIf         WinWaitActive("特别提示", "") Then
   WinKill("特别提示", "")
    EndIf
WEnd

都存在WinWaitActive("重要提示", "") 卡住,拒绝执行下一步。

请问,如何改进。

kakinkgb 发表于 2008-5-31 23:33:37

While 1
      WinWaitActive("重要提示", "")      
      WinKill("重要提示", "")
      WinWaitActive("特别提示", "")      
      WinKill("特别提示", "")
WEnd
试过了,正常,可能是WinKill函数不行,你换个试试,比如msgbox,只要能循环就不是你的问题

caney 发表于 2008-5-31 23:55:24

谢谢二楼的回答,你的回答,貌似“只要能循环就不你的问题:,对我有点启发。但"不是你的问题"我也要解决这个问题。即使"不是你的问题"是指不是程序设计的问题,而是au3的问题,我也要解决它。又是我的问题了。。。。

继续研究中

[ 本帖最后由 caney 于 2008-5-31 23:57 编辑 ]

kakinkgb 发表于 2008-6-3 16:46:15

重要提示和特别提示都是同一个进程的窗口吧?你用WinKill把那个进程挂了,自然就没有特别提示了

dboys 发表于 2008-6-3 20:55:39

你只是要把这两个窗口关闭吧?
那就这样就好了

While 1
      if WinExists("重要提示", "") Then
      WinClose("重要提示", "")
      ElseIf
      WinExists("特别提示", "") Then
   WinClose("特别提示", "")
    EndIf
WEnd

51ak 发表于 2009-11-19 23:43:07

you学习点带星。

ZEROBOYS 发表于 2009-11-26 02:27:46

推 dboys的方式...
呵呵...LZ的部份,我看了半天,總覺得少了啥判斷式!?
果然就是少了WinExists 去判讀是否存在...

他的原始寫法,跑起來自然會卡,因為一直停在 等待激活
页: [1]
查看完整版本: 循环执行多个WinWaitActive 出现拒绝执行