AHK : 스크립트를 실행하는 동안 PgDn 및 PgUp 키를 사용하지 않도록 설정


0

내가하고 싶은 일은 내가 그 (것)들의 효력을 무능하게하는 원본을 창조하기위한 것이다. PgDn 또는 PgDn 키를 기다리는 동안 (즉, 바로 가기 키를 즉시 캡처하지 않으므로 무시하지 않습니다.), 대기 지속 시간에 프로그램에 영향을 미치지 않습니다.

예제 시나리오 : 3 초 내에 PgDn MsgBox를 활성화하려면 키를 누르고 있어야하며, 브라우저 창 등은 발생하지 않아야합니다. 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_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

하지만 지금은 AHK처럼 받아들이지 않을 것 같습니다. PgDn PgUp 열쇠, Windows는하지 않습니다.

아이디어는 AHK가 입력을 받도록하는 것입니다.


해당 항목을 제거하십시오. ~ 각 핫키에서. 어쨌든 대부분의 경우 스크립트가 최적이라고 생각하지 않습니다. 당신이 성취하려는 것을 상세히 설명 할 수 있습니까?
MCL

답변:


0

다음 코드를 사용하면 설명 된 것을 수행 할 수 있습니다.

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 3 초 미만 동안 개최됩니다, 아무 일도 일어나지 않습니다. 일단 PgDn 또는 PgUp 키를 3 초 동안 누르고 있으면 키가 릴리스 될 때까지 키를 반복해서 시작합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.