Другие языки программирования и технологии
Помогите сделать скрипт на autohotkey.
Если зажат "Space", то нажимать "Space" с самым маленьким промежутком времени между нажатиями (если "Space" отжать (отпустить), то нажатия "Space" прекращаются)
придётся другую клавишу назначить.
Дмитрий Амочкин
да хоть какую, нужен см скрипт
Интересно автор вообще сам понимает суть вопроса? Это будет один из самых бесполезных скриптов в мире, во-первых, потому что нажимать "Space" с самым маленьким промежутком времени между нажатиями, это и есть "зажать" Space, а во-вторых потому что даже если слегка увеличить промежуток между нажатиями спейса то происходит вот что:
1. Юзер зажал спейс.
2. скрипт просек что спейс - зажат, запустил свою часть
3. скрипт нажал зажатый спейс, а т. к. спейс уже зажат, то скрипт реально не сделал вобще ничего.
4. скрипт отпустил зажатый спейс.
5. скрипт проверяет а зажат ли спейс сейчас, чтобы перейти к пункту 2 или 3, и оказывается что спейс не зажат потому как предыдущий шаг скрипта его "отпустил", (и пофиг что юзер продолжает "держать" спейс на клавиатуре сигнал об "спейс отпущен уже ушел, следовательно "удержание" будет проигнорировано), а значит скрипту и делать больше ничего не надо.
Т. е. по-факту этот скрипт будет однократно "отжимать/отпускать" "зажатый" спейс.
1. Юзер зажал спейс.
2. скрипт просек что спейс - зажат, запустил свою часть
3. скрипт нажал зажатый спейс, а т. к. спейс уже зажат, то скрипт реально не сделал вобще ничего.
4. скрипт отпустил зажатый спейс.
5. скрипт проверяет а зажат ли спейс сейчас, чтобы перейти к пункту 2 или 3, и оказывается что спейс не зажат потому как предыдущий шаг скрипта его "отпустил", (и пофиг что юзер продолжает "держать" спейс на клавиатуре сигнал об "спейс отпущен уже ушел, следовательно "удержание" будет проигнорировано), а значит скрипту и делать больше ничего не надо.
Т. е. по-факту этот скрипт будет однократно "отжимать/отпускать" "зажатый" спейс.
Дмитрий Амочкин
дело просто в том, что в некоторых играх если зажимаешь спейс, то он нажимается всего один раз, например, если мне нужно в момент приземления на землю нажать спейс, а это иногда не получается нажать именно в нужный момент (до милисекунд), то проще сделать такой макрос (т. к. если зажать спейс, то персонаж не будет прыгать очередбю, а совершит всего один прыжок)
я хз
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
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
Если что просто создоёшь текстовый доуемнет и в него пишешь это и меняешь разрезение на .ahk Либо просто создаёшь новый файл и там будет AHK и редактируешь, всё от туда удоляешь и встовляешь это!
Сам Скрипт:
F9:: Hotkey, *~$Space, Toggle
*space::
Loop
{
GetKeyState,state,space,P
if state = U
break
Send,{space}
Sleep,4
}
return
F10::Exitapp
Кэтэлин Самсонов
Не работает
Похожие вопросы
- Помогите со скриптом авторизации и регистрации пользователей на сайте через БД
- Помогите написать скрипт сканирования файла для антивируса
- Помогите создать скрипт
- Срочно! Помогите со скриптом! HTML
- Помогите со скриптом
- Люди, знающие SQL, помогите сделать запрос.
- у кого есть FineReader , помогите сделать из картинки текст
- Формула в excel. Помогите сделать формулу.
- Помогите сделать задачу по Web-програмированию, пополню счет на моб. за это!!!!
- Помогите сделать сайт на HTML Не получается сделать сайт на HTML,помогите сделать тема тяжёлая атлетика