我使用AutoIt在Windows7中自动安装软件。
在安装过程中,如果出现错误窗口,则介于两者之间。我想点击ENTER。
如果没有出现错误窗口,那么我不应该做任何事情。它应该转到下一部分。
我已经尝试过" WinActive和WinWaitActive"但它等待窗口出现。如果窗口没有出现,则不会进入下一个屏幕。
知道如何处理这种情况吗?
答案 0 :(得分:0)
做一会儿循环:
while (!inputErrorage) {
System.out.print("\tEnter your age: ");
age = scan.nextInt();
if((age < 0 || age > MAX_POSSIBLE_AGE)){
inputErrorAge = true;
}
}
答案 1 :(得分:0)
AdlibRegister()
是正确的选择。从帮助文件中:
“ ...通常检查不可预见的错误。例如,您可以在脚本中使用adlib,这会导致错误窗口意外弹出。”
每100毫秒(可以调整一次),将调用此函数以检查错误对话框的出现:
Global $sErrorWindow = 'ErrorDialogName'
Global $iDelayHowOftenDoTheFunctionCall = 100
AdlibRegister('_isErrorWindowDisplayed', $iDelayHowOftenDoTheFunctionCall)
Func _isErrorWindowDisplayed()
If WinActive($sErrorWindow) <> 0 Then
WinActivate($sErrorWindow) ; just to be sure that the ENTER command is on the correct window/dialog
; either do
Send('{ENTER}')
; or
ControlClick('title', 'text', 'controlID')
EndIf
EndFunc
; do your software installation processing here
; ...
; ...
; don't forget to unregister the function at the end
AdlibUnRegister('_isErrorWindowDisplayed')