AHK: desabilitando as chaves PgDn & PgUp durante a execução do script

0

O que eu quero fazer é criar um script que me permita desabilitar o efeito das chaves PgDn ou PgDn enquanto aguarda (para que não capture instantaneamente a tecla de atalho para que não haja substituição), embora não tenha efeito no programa nessa duração de espera.

Cenário de exemplo: Nos 3 segundos que a tecla PgDn deve ser pressionada para ativar uma (digamos) MsgBox, ela não deve causar uma janela do navegador, etc. Para aceitar o PgDn entrada. Ou seja, não quero que a minha página desça enquanto estou pressionando a tecla PgDn .

Este é o meu código até agora.

~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 

Funciona, mas não sem rolar a página da Web de qualquer maneira.

EDIT: também executei o seguinte script de registro para desativar a ação das chaves PgDn e PgUp :

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard 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

Mas agora parece que o AHK também não aceitará as teclas PgDn e PgUp , mesmo que o Windows não.

A idéia é apenas deixar o AHK obter a entrada.

    
por Seleus Marx 18.02.2014 / 07:47

1 resposta

0

O código a seguir permitirá que você faça o que descreveu:

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

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

Se PgDn ou PgUp for mantido por menos de três segundos, nada acontece. Uma vez que PgDn ou PgUp é mantido por três segundos, a chave começa a se enviar repetidamente até que seja liberada.

    
por 28.09.2014 / 15:01

Tags