AHK: Помогите исправить ошибку.

Aanna22

Новичок
Автор темы
2
0
Приветствую!

Сделала код, мои знания ниже базовых, всё почти работает, но кое-что не совсем так как хочу.

Суть кода в следующем:
При нажатии F1 идёт частое нажатие цифр 2 и 3. F2 - пауза, F3 - возобновление.
При нажатии F4 идёт частое нажатие цифр 4 и 5. F5 - пауза, F6 - возобновление.

По-сути, 2 простейшие задачи в одном коде.

В чём проблема?
При переходе от первой части кода (нажатие цифр 2 и 3) к части где идёт нажатие 4 и 5 - уже не возможно вернуться, нажатием горячей клавиши F1 на первую часть кода, чтобы снова выполнялось нажатие клавиш 2 и 3. Вторая же часть кода продолжает работать отлично (пауза и стоп).

Где ошибка? или если можете - исправьте недочёт, пожалуйста, моих знаний не хватает пока что, спасибо.

P.s.: примерно понимаю, что необходимо куда-то и как-то всунуть команду "Brake" потому что используется команда "Pause".


Код:
F1::
Loop {
  Send {sc3}
  Sleep 70
  Send {sc4}
}
Return
F2::                 ; Приостановка по F2.
  If not Stop
  {
    Stop := True
    Pause
  }
Return
F3::                 ; Возобновление по F3.
  If Stop
  {
    Stop := False
    Pause
  }
Return
F4::
Loop {
  Send {sc5}
  Sleep 70
  Send {sc6}
}
F5::                 ; Приостановка по F5.
  If not Stop
  {
    Stop := True
    Pause
  }
Return
F6::                 ; Возобновление по F6.
  If Stop
  {
    Stop := False
    Pause
  }
Return
 

Aanna22

Новичок
Автор темы
2
0
Предлагаю тебе следующий вариант:
AutoHotKey:
F1::
Loop {
  Send {sc3}
  Sleep 70
  Send {sc4}
}
Return

F2::
Loop {
  Send {sc5}
  Sleep 70
  Send {sc6}
}
Return

F5:: ; Перезапуск скрипта
Reload
Return


Спасибо вам огромное, у вас хороший вариант!!
Посидела ночь, и сделала что-то в этом роде:


Код:
F1::
F2:: SetTimer, label, % (hotkey != A_ThisHotkey) ? (10, hotkey := A_ThisHotkey) : ("Off", hotkey := "")

label:
    if (hotkey = "F1") {
        Send {2}
        Sleep 70
        Send {3}
    }
    else if (hotkey = "F2") {
        Send {4}
        Sleep 70
        Send {5}
    }
Return
 

darksoor

Известный
679
355
Спасибо вам огромное, у вас хороший вариант!!
Посидела ночь, и сделала что-то в этом роде:


Код:
F1::
F2:: SetTimer, label, % (hotkey != A_ThisHotkey) ? (10, hotkey := A_ThisHotkey) : ("Off", hotkey := "")

label:
    if (hotkey = "F1") {
        Send {2}
        Sleep 70
        Send {3}
    }
    else if (hotkey = "F2") {
        Send {4}
        Sleep 70
        Send {5}
    }
Return
SetTimer работает медленнее цикла. Если вам это не принципиально, то я тоже хотел подобный вариант предложить.