1

Я долго искал, как заставить кнопку графического интерфейса работать как простой цикл.

Я в тупике и мне нужна помощь. Вот мой код

#NoEnv

 #SingleInstance force

 #MaxThreadsPerHotkey 2

Gui, show, NoActivate w200 h200, TEST


Gui, Add, button, vbutton gbutton w80, button

return

button:

loop {

sendinput, c 

sleep, 700

}

return

escape::
exitapp

1 ответ1

0

У вашего цикла нет условия выхода, которое остановило бы его.

loop
{
    while sendingKeys
    {
        sendinput c
        sleep, 700
    }
    sleep 100
}

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

sendingKeys := False    ; make the user toggle first before loop turns on

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

button:

    sendingKeys := not sendingKeys

return

Когда внутренний цикл не выполняется, внешний цикл просто опрашивает и продолжает работать, пока внутренний цикл не начнет выполняться снова.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .