Reasignar una tecla dependiendo de si se presionó sola o no

Reasignar una tecla dependiendo de si se presionó sola o no

Sé cómo usar Autohotkey para reasignar teclas y combinaciones de teclas. si me atoBloq MayúsaControl, Capslock+ Anykeyfuncionará como Ctrl+ Anykey.

¿Cómo puedo vincularme CapsLocksolo a otra tecla de acceso rápido ( Ctrl+ 1, por ejemplo), pero vincular Capslock+ Anykeya Ctrl+ Anykey?

Respuesta1

Bien, tengo una solución imperfecta:

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

Si presiona Mayúsculas durante más de 100 ms y luego lo suelta, no sucederá nada. Si lo presiona durante menos de 100 ms, luego lo suelta y escribirá "No". Si presiona cualquier tecla mientras la mantiene presionada, ejecutará control+tecla. Si mantiene presionadas las mayúsculas durante menos de 100 ms y logra presionar cualquier tecla antes de soltarlas, ejecutará control+tecla y escribirá "No". Puedes variar el tiempo. Esto es lo mejor que pude hacer, tal vez haya una manera mejor.

Respuesta2

Escribí un programa en C++ que hace exactamente esto. Reasigna la tecla Aplicaciones en lugar de Capslocks, pero sería trivial modificarlo. El código fuente (y más información) está en github enhttps://github.com/russelldavis/KeyFix4000

información relacionada