1 (изменено: rainbow, 2025-03-04 10:35:35)

Тема: AHK: Запуск и пауза через CAPS LOCK

Ну вроде решил основные задачи, но никак не могу написать такой код.
Нужно чтобы при однократном нажатии на CAPS LOCK на 1 секунду нажималась кнопка  W, затем она отжималась и через 4 секунды опять нажималась на 1 секунду и так бесконечно. А при однократном нажатии на CAPS LOCK скрипт становился на паузу до следущего нажатия и запуска скрипта.
Я уже пробовал по всякому. Прошу вас, подскажите код.

2

Re: AHK: Запуск и пауза через CAPS LOCK

rainbow пишет:

Нужно чтобы при однократном нажатии на CAPS LOCK на 1 секунду нажималась кнопка  W

rainbow пишет:

А при однократном нажатии на CAPS LOCK скрипт становился на паузу

А при однократном нажатии что нужно?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: rainbow, 2025-03-04 11:22:51)

Re: AHK: Запуск и пауза через CAPS LOCK

Ну тут суть такая. Нужно чтобы кнопка W на 1 секунду нажалась, а затем отжалась и была пауза в 4 секунды, потом кнопка W опять на 1 секунду нажалась, затем отжалась и через 4 секунды опять нажалась и так далее.И так до бесконечности.
А однократное нажатие на CAPS LOCK запускало бы скрипт или остановливало его.
Я уже перекомбинировал все имеющиеся у меня в качестве примеров скрипты). Как генные инженеры комбинируют хромосомы - не получается)

4

Re: AHK: Запуск и пауза через CAPS LOCK

То есть, кнопка CAPS LOCK и включает, и выключает действие? А что, если после запуска действия и нажатия W кнопка CAPS LOCK будет снова нажата, не дожидаясь 4 секунд?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Запуск и пауза через CAPS LOCK

Я имею в виду, что будет, если CAPS LOCK будет нажата повторно, когда W будет в нажатом состоянии? Она так и останется нажатой?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6 (изменено: rainbow, 2025-03-04 12:04:51)

Re: AHK: Запуск и пауза через CAPS LOCK

teadrinker Ну тогда скрипт остановится.

Но, кнопка CAPS LOCK только запускает и останавливает действие скрипта.
А кнопка W сама включается на 1 секунду и потом отключается на  4 секунды уже без участия CAPS LOCK. Кнопка W потом автоматически включается и отжимается до бесконечности.
Кнопка CAPS LOCK только запускает скрипт в начале и останавливает его при необходимости.

Ну вот я включил лампочку на секунду, затем прошло 4 секунды, я опять включил лампочку на секунду. Только все это должно быть автоматически и бесконечно повторяться. И запускаться и останавливаться это должно кнопкой  CAPS LOCK

7 (изменено: rainbow, 2025-03-04 12:17:55)

Re: AHK: Запуск и пауза через CAPS LOCK

1) Физически нажал кнопку CAPS LOCK. Запустился скрипт.

2) На 1 секунду скрипт нажал на кнопку W.

3) Через 1 секунду кнопка W отжалась.

4) Прошло 4 секунды.

5) Снова 1 секунду нажалась кнопка W.

6) Через 1 секунду кнопка W отжалась.

И так до бесконечности, пока я снова физически не нажму на кнопку CAPS LOCK и тогда скрипт остановится.

8

Re: AHK: Запуск и пауза через CAPS LOCK

Попробуйте так:

SetCapsLockState, AlwaysOff
global state := false
CapsLock::
CapsLockFunc() {
    if state := !state {
        SetTimer, wDown, -10
    } else {
        SetTimer, wDown, Off
    }
}

wDown() {
    Send {w Down}
    Sleep 1000
    Send {w Up}
    if state {
        SetTimer,, -4000
    }
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Запуск и пауза через CAPS LOCK

Или короче так:

SetCapsLockState, AlwaysOff
CapsLock:: SetTimer, wDown, % (state := !state) ? -10 : "Off"

wDown() {
    global state
    Send {w Down}
    Sleep 1000
    Send {w Up}
    if state {
        SetTimer,, -4000
    }
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10 (изменено: rainbow, 2025-03-04 12:45:24)

Re: AHK: Запуск и пауза через CAPS LOCK

teadrinker

Отличный скрипт). Сразу видно профессионала.

Скажите пожалуйста, а можно вот в этот скрипт добавить запуск кнопкой CapsLock?

Loop {
  Send {W}
  Sleep 4000
}
CAPSLOCK::Pause

11

Re: AHK: Запуск и пауза через CAPS LOCK

Так это почти такой же скрипт. Просто вместо

    Send {w Down}
    Sleep 1000
    Send {w Up}

напишите

Send w
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

12

Re: AHK: Запуск и пауза через CAPS LOCK

teadrinker Не пойму, честно говоря.

13

Re: AHK: Запуск и пауза через CAPS LOCK

Просто напишите, как я показал.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14 (изменено: rainbow, 2025-03-04 14:27:38)

Re: AHK: Запуск и пауза через CAPS LOCK

Мда, все оказалось сложнее.

В общем, суть. Я в игре Red Dead Redemption 2 стою в городе. Камера от первого лица. Но, если я стою неподвижно более 2 минут, то камера автоматически переходит от первого лица в камеру от третьего лица. Очень неудобно.
И чтобы сохранить камеру от первого лица, я вынужден скриптом, постянно нажимать клавишу W. Тогда камера от первого лица не переходит в камеру от третьего лица через две минуты.

Но, интересно, что ваш скрипт нажимает как нужно клавишу W, но непонятно почему в игре камера от первого лица все равно через две минуты переходит в камеру от третьего лица.

SetCapsLockState, AlwaysOff
CapsLock:: SetTimer, wDown, % (state := !state) ? -10 : "Off"

wDown() {
    global state
    
    Send w
    if state {
        SetTimer,, -4000
    }
}

А в моем скрипте, как ни странно камера от первого лица всегда остается в первом лице.


Loop {
  Send {W}
  Sleep 4000
}
CapsLock::Pause

Может дело в том, что в вашем коде скрипт отпускает кнопку W  с задержкой? Если это так, то можно в вашем скрипте убрать задержку. Чтоб кнопка w нажималась мгновенно.

Прям загадка.

15

Re: AHK: Запуск и пауза через CAPS LOCK

Не знаю, нужно непосредственно с игрой экспериментировать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

16

Re: AHK: Запуск и пауза через CAPS LOCK

Большое вам, сердечное спасибо, что уделили мне время. Буду разбираться, потому что никаких логических оснований у этой проблемы не вижу. Теоретически ваш код должен работать. Он и отлично работает, но почему-то не взаимодействует с игрой. Странно.