Bagaimana cara menggabungkan tiga tombol sebagai hotkey dengan Autohotkey?

14

Saya ingin menggabungkan CapsLock Alt kkunci dalam satu hotkey tunggal, seperti ini:

CapsLock & !k:: Send !{Up}

Ini tidak berfungsi karena Autohotkey tidak mengizinkan kombinasi lebih dari dua tombol kecuali tombol pengubah.

Mencari solusi yang saya temukan bahwa menggunakan kode pindai di sisi kiri mungkin bisa diatasi, seperti:

SC035 & !k:: Send !{Up}

Saya menguji solusi ini juga tetapi ini tidak bekerja dengan baik. Dalam hal ini, menekan CapsLock+kmemicu tombol pintas.

Mert Nuhoglu
sumber
(Dalam AutoHotkey, Ctrl adalah ^, Alt adalah !. Anda dapat mengklarifikasi yang mana yang Anda inginkan.)
Bavi_H
Saya memperbaiki kesalahan itu.
Mert Nuhoglu

Jawaban:

13

Bagaimana dengan ini?

Capslock & k:: 
GetKeyState, state, Alt
if state = D
SendInput !{Up}
Return 
snitzr
sumber
Terima kasih. Ini benar-benar berfungsi. Tetapi sekarang ada sedikit keterlambatan saat menggunakan CapsLock dikombinasikan dengan kunci, seperti "CapsLock & a :: =". Penundaan ini mungkin karena fungsi GetKeyState, bukan?
Mert Nuhoglu
Saya menguji, tetapi tidak dapat membuat ulang keterlambatan ini. Skrip harus mandiri dan tidak memengaruhi kinerja skrip lain. Skrip yang memiliki GetKeyState untuk menambahkan hotkey ketiga (seperti yang saya miliki di atas) tidak akan berperilaku persis seperti skrip dengan pengaturan hotkey normal dan dapat mencegah skrip mengulangi secepat seperti biasa. Semoga itu bisa membantu.
snitzr
3
Saya lebih suka sintaksis yang lebih ringkas ini dan berpikir saya akan membaginya dengan Anda: jika tidak GetKeyState ("Alt", "P") ... Ubah sesuai dengan kebutuhan Anda. Bersulang.
Mario Awad