我正在使用超时 = 2 秒的 msgbox,我想在 msgbox 超时后继续运行脚本。
例如,我的代码是这样的:
$log = 'C:notepad.log'
Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send("This is first line{ENTER}okay{ENTER}")
sleep (200)
msgbox (1,"debug","debug",2)
Send("This is second line{ENTER}okay{ENTER}")
sleep (200)
Send("This is third line{ENTER}okay{ENTER}")
sleep (200)
Send("!f")
send ("{DOWN}{DOWN}{ENTER}")
sleep (500)
Send($log)
sleep (1000)
Send("{ENTER}")
sleep (200)
WinClose("[CLASS:Notepad]")
*##在这里我使用了 2 秒后超时"msgbox (1,"debug","debug",2)"
在此之后它不会发送命令
Send("This is second line{ENTER}okay{ENTER}")
sleep (200)
Send("This is third line{ENTER}okay{ENTER}")
请建议如何处理此超时。
请注意,我的应用程序需要定义 TIMEOUT,然后继续脚本。
问题是在
显示 msgbox 后,记事本可能不再是活动窗口。
在 msgbox 行之后放置一个 WinActivate 命令以重新激活记事本窗口
WinActivate("Untitled - Notepad")
Yeh Richard 是对的,你必须重新激活窗口,你可以
$log = 'C:notepad.log'
Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send("This is first line{ENTER}okay{ENTER}")
sleep (200)
msgbox (1,"debug","debug",2)
WinActivate("Untitled - Notepad")
Send("This is second line{ENTER}okay{ENTER}")
sleep (200)
Send("This is third line{ENTER}okay{ENTER}")
sleep (200)
Send("!f")
send ("{DOWN}{DOWN}{ENTER}")
sleep (500)
Send($log)
sleep (1000)
Send("{ENTER}")
sleep (200)
WinClose("[CLASS:Notepad]")