Переназначение клавиши в зависимости от того, была ли она нажата отдельно или нет

Переназначение клавиши в зависимости от того, была ли она нажата отдельно или нет

Я знаю, как использовать Autohotkey для переназначения клавиш и комбинаций клавиш. Если я привяжуCapslockкCtrl, Capslock+ Anykeyбудет работать как Ctrl+ Anykey.

Как можно привязать CapsLockтолько одну горячую клавишу к другой ( например, Ctrl+ ), а + привязать к + ?1CapslockAnykeyCtrlAnykey

решение1

Хорошо, у меня есть неидеальное решение:

Capslock::Control  ;--Holding Caps = holding Ctrl

Capslock Up:: ;--If you press Caps fast, it types "No"
SendInput, {Control Up}  ;--For stability
If A_TimeSincePriorHotkey < 100  ;--Vary the time as it suits you
{
Sendinput, No  ;--Replace with what you want Caps to do on its own
}
Else
return
return

Если вы нажмете Caps на более чем 100 мс, а затем отпустите ее, ничего не произойдет. Если вы нажмете ее на менее чем 100 мс, а затем отпустите ее, она наберет "No". Если вы нажмете любую клавишу, удерживая ее, она выполнит control+Key. Если вы нажмете Caps на менее чем 100 мс и успеете нажать любую клавишу до того, как отпустите Caps, она выполнит control+Key и наберет "No". Вы можете варьировать время. Это лучшее, что я мог сделать, возможно, есть лучший способ.

решение2

Я написал программу на C++, которая делает именно это. Она переназначает клавишу Apps вместо Capslocks, но ее было бы легко изменить. Исходный код (и дополнительная информация) находится на github по адресуhttps://github.com/russelldavis/KeyFix4000

Связанный контент