AHK: отключение ключей PgDn и PgUp при выполнении скрипта

то, что я хочу сделать, это создать скрипт, который позволяет мне отключить эффект PgDn или PgDn ключи во время ожидания (поэтому она не мгновенно создать горячую клавишу, так что замены этому нет), при этом не имея никакого влияния на программы, которые ждать время.

пример: в 3-х секунд, что PgDn ключ необходимо держать вниз для того чтобы активировать (скажите) MsgBox, его не должен причинить окно браузера, etc. Принять PgDn вход. То есть я не хочу, чтобы моя веб-страница прокручивалась вниз, пока я нажимаю PgDn ключ.

Это мой код до сих пор.

~PgDn::
If PgDnIsPressed
return

PgDnIsPressed := true
SetTimer, WaitForRelease, 3000
return

~PgDn Up::
SetTimer, WaitForRelease, Off
PgDnIsPressed := false
return

WaitForRelease:
SetTimer, WaitForRelease, Off
msgbox Working
return 

это работает, но не без прокрутки веб-страницы в любом случае.

изменить: я также запустил следующий сценарий реестра, чтобы отключить действие
из PgDn и PgUp ключи:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,00,00,49,e0,00,00,51,e0,00,00,00,00

но теперь кажется, что AHK тоже не примет PgDn и PgUp ключи, даже если Windows не будет.

идея состоит в том, чтобы только позволить AHK получить вход.

15
задан gronostaj
15.01.2023 1:01 Количество просмотров материала 3362
Распечатать страницу

1 ответ

следующий код позволит вам делать то, что вы описали:

hotkey, $pgDn, keyDelayer
hotkey, $pgUp, keyDelayer

keyDelayer:
    sleep 3000
    thisHotkey := regExReplace(a_thisHotkey, "[^0-9A-Za-z]")
    while getKeyState(thisHotkey, "p")
        send {%thisHotkey%}
return

Если PgDn или PgUp удерживается менее трех секунд, ничего не происходит. Однажды PgDn или PgUp удерживается в течение трех секунд, ключ начинает многократно посылать себя, пока не будет отпущен.

0
отвечен adaaaam 2023-01-16 08:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх