1 (изменено: artur.petrash.98, 2018-01-31 03:31:36)

Тема: Как прервать один цикл и начать другой через 300ms

Мне нужно чтобы я зажал клавишу d и первые 300ms  работал первый цикл, а после второй цикл до тех пор пока отпустится клавиша d
Ниже я сделал это 2мя клавишами, но тайминг 300ms приходится ловить вручную
~sc20::
   Loop
   {
      Send, {sc39}{sc2D}{sc2F}
      Sleep, 1
      If !GetKeyState("sc20", "P")
         Break
   }
   Return


~sc21::
   Loop
   {
      Send, {sc10}{sc11}{sc2E}
      Sleep, 1
      If !GetKeyState("sc21", "P")
         Break
   }
   Return


!sc19::
Suspend
Return

2

Re: Как прервать один цикл и начать другой через 300ms

Мне кажется что это можно сделать данным способом:

~sc20::
time := A_TickCount
Loop
{
	if (A_TickCount - time < 300)
		Send, {sc39}{sc2D}{sc2F}
	else
		Send, {sc10}{sc11}{sc2E}
	Sleep, 1
	If (!GetKeyState("sc20", "P"))
		Break
}
Return
Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

3

Re: Как прервать один цикл и начать другой через 300ms

Phoenixxx_Czar Спасибо, всё работает