Другие языки программирования и технологии

Помогите сделать скрипт на autohotkey.

Если зажат "Space", то нажимать "Space" с самым маленьким промежутком времени между нажатиями (если "Space" отжать (отпустить), то нажатия "Space" прекращаются)
придётся другую клавишу назначить.
ПС
Пётр Сальников
55 355
Лучший ответ
Дмитрий Амочкин да хоть какую, нужен см скрипт
Интересно автор вообще сам понимает суть вопроса? Это будет один из самых бесполезных скриптов в мире, во-первых, потому что нажимать "Space" с самым маленьким промежутком времени между нажатиями, это и есть "зажать" Space, а во-вторых потому что даже если слегка увеличить промежуток между нажатиями спейса то происходит вот что:
1. Юзер зажал спейс.
2. скрипт просек что спейс - зажат, запустил свою часть
3. скрипт нажал зажатый спейс, а т. к. спейс уже зажат, то скрипт реально не сделал вобще ничего.
4. скрипт отпустил зажатый спейс.
5. скрипт проверяет а зажат ли спейс сейчас, чтобы перейти к пункту 2 или 3, и оказывается что спейс не зажат потому как предыдущий шаг скрипта его "отпустил", (и пофиг что юзер продолжает "держать" спейс на клавиатуре сигнал об "спейс отпущен уже ушел, следовательно "удержание" будет проигнорировано), а значит скрипту и делать больше ничего не надо.
Т. е. по-факту этот скрипт будет однократно "отжимать/отпускать" "зажатый" спейс.
Kami-Sama Tszen
Kami-Sama Tszen
4 644
Дмитрий Амочкин дело просто в том, что в некоторых играх если зажимаешь спейс, то он нажимается всего один раз, например, если мне нужно в момент приземления на землю нажать спейс, а это иногда не получается нажать именно в нужный момент (до милисекунд), то проще сделать такой макрос (т. к. если зажать спейс, то персонаж не будет прыгать очередбю, а совершит всего один прыжок)
я хз
1. Юзер Нажал спейс.
2. скрипт перехватил нажатие "{Space Down}" - запустил свою часть
3. Сразу, без задержек начинает нажимать и отжимать "Пробел".

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

Пример:

SetKeyDelay, -1, -1 ; Убирает паузы между виртуальными нажатиями,
; и паузы удержания клавиш.
Return ; Конец секции авто выполнения.

*$Space:: ; При НАжатии клавиши "Пробел"
Gosub, _Spaced ; Что бы не было задержки
SetTimer, _Spaced, 10 ; Запуск таймера с минимальным периодом
Return

*Space Up:: ; При ОТжатии клавиши "Пробел"
SetTimer, _Spaced, Off ; Отключает таймер.
Return

_Spaced:
Send, {Space} ; Нажать и отпустить "Пробел"
Return

Вариант:

SetKeyDelay, -1, -1 ; Убирает паузы между виртуальными нажатиями,
; и паузы удержания клавиш.
Return ; Конец секции авто выполнения.

*$Space:: ; При нажатии клавиши "Пробел"
loop ; Бесконечный цикл
{
GetKeyState, state, Space ; Проверка нажатия
if state = D ; Если нажата
Send, {Space} ; Нажать и отпустить "Пробел"
else ; Если не нажата
Break ; Выход из цикла (потока)
}
Return
Здраствуй! Тоже искал этот срипт и нешёл чтото робочее!
Если что просто создоёшь текстовый доуемнет и в него пишешь это и меняешь разрезение на .ahk Либо просто создаёшь новый файл и там будет AHK и редактируешь, всё от туда удоляешь и встовляешь это!
Сам Скрипт:

F9:: Hotkey, *~$Space, Toggle
*space::
Loop
{
GetKeyState,state,space,P
if state = U
break

Send,{space}
Sleep,4
}
return

F10::Exitapp
Merabi Tumanishvili
Merabi Tumanishvili
109
Кэтэлин Самсонов Не работает