![Autohotkey Ctrl+Shift - Zbrush/Photoshop](https://rvso.com/image/1388784/Autohotkey%20Ctrl%2BShift%20-%20Zbrush%2FPhotoshop.png)
He estado usando Autohotkey durante mucho tiempo para reasignar teclas dentro de softwares CG (principalmente Zbrush y Photoshop) para hacerlos más aptos para zurdos.
Básicamente, reasigno las teclas del teclado numérico a teclas que no puedes cambiar dentro de los programas (Ctrl, Alt, Shift, etc...). De esta manera puedo usar el lápiz de mi tableta gráfica con la mano izquierda y acceder a Ctrl, Alt, etc. usando el teclado numérico, lo cual es mucho más conveniente que desplazar todo el teclado hacia la derecha.
De todos modos, aquí está mi guión:
#IfWinActive, ahk_class ZBrush
#MaxHotkeysPerInterval 200
NumPad1::Alt
Numpad2::LControl
Right::Shift
up::Space
return
Bastante simple, pero he tenido un error desde que lo creé hace varios años. Básicamente, cuando presiono y mantengo presionado Numpad2+Derecha (Ctrl+Shift) y suelto Numpad2, el programa se comporta como si todavía lo estuviera presionando. Al reprimir Numpad2 muy rápidamente, vuelve a la normalidad, pero es muy molesto. Aquí hay un par de imágenes para ilustrar mejor el problema:
¿Sabes por que pasa esto? No soy programador, así que definitivamente me vendría bien un poco de ayuda.
Respuesta1
El problema no parece ocurrir cuando lanzo Justo antes de Numpad2. Es como si presionar Derecha (Shift) impidiera que se soltara el teclado numérico 2 (Ctrl)...
El problema que estás viendo se debe a que el teclado numérico está alterado por ⇧Shift. Presionar ⇧Shiftes similar a alternar la NumLocktecla, pero el efecto es más complejo y no obvio.
Por ejemplo, presionar Numpad-4produciría los siguientes resultados:
│ Num On │ Num Off
──────────┼────────┼───────────
Shift Off │ 4 │ ←
──────────┼────────┼───────────
Shift On │ ← │ Shift + ←
Debido a que está reasignando →para ser ⇧Shifty usándolo en combinación con una tecla en el teclado numérico, está obteniendo una interacción que complica AutoHotkey y lo confunde con su resultado inesperado (es muy posible que sea ellógicamente correcto, pero ciertamente resultado inesperado y no deseado).
Intente cambiar su clave secundaria Numpad-2a otra que seanomodificado por ⇧Shift, como por ejemplo K. Notarás que ya no obtendrás resultados inesperados.
Este comportamiento ocurre en el controlador del teclado, no en el software, por lo que desafortunadamente, si necesita usarlo ⇧Shiftcomo modificador, no puede usar una tecla del teclado numérico para reasignaciones complejas como esta.
Una opción es utilizar el bloque de edición o las teclas del teclado numérico que no son modificadas por ⇧Shift(los operadores matemáticos, Numpad-5y Numpad-Enter).
Otra opción es escribir un script más complicado que cree un gancho de teclado para verificar las teclas en un nivel inferior, de modo que pueda verificar si la ⇧Shifttecla está presionada y luego compensar según sea necesario.
(Me encontré con este mismo problema hace un tiempo cuando escribí un programa para ingresar Unicode. Estaba tratando de que admitiera el cambio de teclas para ciertos caracteres, pero la modificación estaba arruinando las cosas. Terminé recurriendo a la última sugerencia y escribiendo un guión complicado, pero frustrante, vertiginoso y, al final, terminó siendo algo limitado de todos modos).
Respuesta2
¡Guau! Impresionante respuesta! Rápido y preciso. Muchas gracias. No me di cuenta de que Shift modificó esas teclas, lo que me provocó este comportamiento molesto. La cosa es que estoy tan acostumbrado a esta reasignación de Numpad2 que no puedo darme el lujo de cambiarla sin pasar semanas de readaptación psicomotriz ^^
Logré solucionar el problema simplemente reasignando NumpadDown a Ctrl también ^^ ¡Ahora hago maravillas!
NumPad1::Alt
Numpad2::Ctrl
NumpadDown::Ctrl
Right::Shift
up::Space
return
Muchas gracias por señalar el origen del problema. Esto me había estado molestando durante años.