AHK: nonaktifkan kunci PgDn dan PgUp saat menjalankan skrip


0

Yang ingin saya lakukan adalah membuat skrip yang memungkinkan saya untuk menonaktifkan efek dari Hal atau Hal kunci saat menunggu (sehingga tidak langsung menangkap hotkey sehingga tidak ada menimpa), sementara tidak memiliki efek pada program dalam durasi tunggu itu.

Contoh skenario: Dalam 3 detik itu Hal kunci harus ditekan untuk mengaktifkan (katakanlah) MsgBox, itu tidak boleh menyebabkan jendela browser, dll. Untuk menerima Hal memasukkan. Itu saya tidak ingin halaman web saya bergulir ke bawah saat saya menekan tombol Hal kunci.

Ini kode saya sejauh ini.

~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 

Ini berfungsi, tetapi bukan tanpa menggulir halaman web dengan cara apa pun.

EDIT: Saya juga menjalankan skrip registri berikut untuk menonaktifkan tindakan dari Hal dan PgUp kunci:

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

Tapi sekarang sepertinya AHK juga tidak mau menerima Hal dan PgUp tombol, bahkan jika Windows tidak mau.

Idenya adalah hanya membiarkan AHK mendapatkan input.


Hapus ~ dari setiap hotkey. Bagaimanapun, saya tidak berpikir skrip Anda optimal dalam banyak kasus. Bisakah Anda menguraikan apa yang ingin Anda capai?
MCL

Jawaban:


0

Kode berikut akan memungkinkan Anda untuk melakukan apa yang Anda jelaskan:

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

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

Jika Hal atau PgUp ditahan di bawah tiga detik, tidak ada yang terjadi. Sekali Hal atau PgUp ditahan selama tiga detik, kunci mulai berulang kali mengirim dirinya sendiri sampai dilepaskan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.