1

Тема: Нужна помощь со скриптом.

Все не как не могу разобраться с одним скриптом. Мне нужно чтобы клавиша 1 нажималась при нажатии ctrl, с паузой в 7-9 сек как здесь.

lctrl::
{
Random, rand, 7000, 9000
sendinput 1
sleep, %rand%
}
return

Но чтобы !во время паузы! при повторном нажатии на ctrl, он заново нажимал на клв 1 при окончании таймера.
То есть если я успеваю после запуска скрипта нажать повторно клавишу ctrl например за 4 сек, то скрипт должен срабатывать заново после окончании команды sleep (7-9 сек) и прописывать цифру 1, как бы запоминать мое нажатие. А если не нажимать то останавливался ожидая моего нажатия.

Сижу голову ломаю, пробовал c помощью команды loop и pause добиться результата, в итоге получилось тоже самое что и без loop - нужно нажимать ctrl только после 7-9 секунд чтобы прописалась цифра 1(

2 (изменено: Mechanic, 2018-10-17 00:01:25)

Re: Нужна помощь со скриптом.

Ну сделай тогда так.

lctrl::
Again:
KeyState := 0
Random, rand, 7000, 9000
SendInput, 1
rand := rand//100
Loop, %rand% {
if (GetKeyState("LControl", "P"))
	KeyState := 1
sleep 100
}
if (KeyState = 1)
	goto Again
return

3

Re: Нужна помощь со скриптом.

Mechanic
Огромное спасибо! То что нужно.

4 (изменено: SarT, 2018-10-17 09:34:32)

Re: Нужна помощь со скриптом.

Mechanic
А нет рано обрадовался(. При нажатии на lctrl прописывается 1 а затем еще раз 1, даже если не нажимать на ctrl повторно.

p.s Просьба о помощи еще актуальна.

5

Re: Нужна помощь со скриптом.

SarT, всё из-за того что кнопку немного передерживаете.
Добавьте задержку хотя бы в 0,1 секунды, чтобы цикл не фиксировал повторное нажатие как не отпущенную кнопку.

lctrl::
Again:
sleep 100
KeyState := 0
Random, rand, 7000, 9000
SendInput, 1
rand := rand//100
Loop, %rand% {
if (GetKeyState("LControl", "P"))
	KeyState := 1
sleep 100
}
if (KeyState = 1)
	goto Again
return

6

Re: Нужна помощь со скриптом.

Mechanic
Теперь точно все работает как надо, спасибо тебе.