2017-02-01 9 views
0

Любой пользовательский ввод будет выполнен. Вот код, который у меня есть.Как я могу закончить Do Loop после ввода какого-либо пользователя?

Set WshShell = WScript.CreateObject("WScript.Shell") 

Dim Account 
Account = 111111 
WScript.Sleep 5000 

Do 
WScript.Sleep 400 
WshShell.SendKeys "drill " 
WshShell.SendKeys Account 
WshShell.SendKeys "{ENTER}" 
Account = Account + 1 
Loop 

В основном это код отгадчик (для игры), и я хочу, чтобы иметь возможность прервать его с любым типом ввода данных пользователем.

ответ

0

Я не думаю, что у нас есть какое-либо прямое решение. Ниже код ищет взаимодействие пользователя после 50 итераций. Если да, то управляющие выходы из цикла do. Вы можете играть с другими способами, чтобы прервать цикл, и, конечно, вы можете изменить счетчик в соответствии с вашими потребностями.

Set WshShell = WScript.CreateObject("WScript.Shell") 
Dim counter 
Dim Account 
Dim msgResult 

counter = 0 
Account = 111111 
WScript.Sleep 5000 

Do 
WScript.Sleep 400 
WshShell.SendKeys "drill " 
WshShell.SendKeys "drill " 
WshShell.SendKeys Account 
WshShell.SendKeys "{ENTER}" 
Account = Account + 1 
If counter = 50 Then 'get user input after 50 iterations 
    msgResult = MsgBox("Do you want to exit?", vbYesNo) 
    If msgResult = vbYes Then 'if yes 
     Exit Do 
    End If 
End If 
counter = counter + 1 
If counter > 101 then 
    counter =0 
End If 
Loop