Quiero presionar una tecla por más tiempo para presionarla con mayúsculas
Esto es lo que probé:
$a::
KeyWait, a, T0.7
If ErrorLevel
send +{a}
Else
send {a}
Return
Envía Aa cuando la clave está activa y lo quiero en general (para todas las claves, sin reescribir un código para cada clave).
Respuesta1
Presione una tecla por más de 0,7 segundos para presionarla con mayúsculas:
#UseHook ; install the keyboard hook to activate hotkeys not supported in the operating system
; create a string of the keys you want be shifted:
keys := "1,2,3,4,a,b,c,d,SC01B,SC02B" ; SC01B = scan code of "#" SC02B = "+"
Loop, parse, keys, `, ; retrieves substrings (fields) from the string "keys" one at a time based on the delimiter ","
Hotkey, %A_Loopfield%, pressedkey ; creates a hotkey of the retrieved field
return
pressedkey: ; A_ThisHotkey: the most recently executed hotkey
KeyWait, %A_ThisHotkey%, T0.7 ; wait 0.7 seconds for the key to be released
If ErrorLevel ; the key has not yet been released after 0.7 seconds
{
KeyWait, %A_ThisHotkey% ; wait for the key to be released
if (SubStr(%A_ThisHotkey%, 1, 2) = SC) ; substring: starting position=1 (first character), Length=2 (characters)
Send +{%A_ThisHotkey%}
else
Send +%A_ThisHotkey%
}
else ; the key has been released before the 0.7 seconds limit
{
if (SubStr(%A_ThisHotkey%, 1, 2) = SC)
Send {%A_ThisHotkey%}
else
Send %A_ThisHotkey%
}
return
EDITAR:
#UseHook
keys := "1,2,3,4,a,b,c,d,SC01B,SC02B"
Loop, parse, keys, `,
Hotkey, %A_Loopfield%, pressedkey
return
pressedkey:
KeyWait, %A_ThisHotkey%, T0.7
If ErrorLevel
{
KeyWait, %A_ThisHotkey%
Send +{%A_ThisHotkey%}
}
else
Send {%A_ThisHotkey%}
return
Respuesta2
Presionar más MAYÚSCULAS fue una buena idea, pero hubo problemas al escribir, así que cambié el objetivo del guión, que era mi objetivo principal "escribir solo números mientras se presiona más tiempo"Como no tengo un teclado numérico en mi teclado, este fue mi código final:
por supuesto un agradecimiento especial ausuario3419297
; AutoHotkey Version: 1.x
; Language: English
; Platform: Win9x/NT
; Author: fayssal.Z
; credits to:
; Great thanks to user3419297 , the whole code made by him
; Script Function:
; easy way to write numbers by pressing longer on symbols (no shift or capslock required)
;
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#UseHook
keys := "sc02,sc03,sc04,sc05,sc06,sc07,sc08,sc09,sc0A,sc0B,sc0C,sc0D"
Loop, parse, keys, `,
Hotkey, %A_Loopfield%, pressedkey
return
pressedkey:
KeyWait, %A_ThisHotkey%, T0.3
If ErrorLevel
{
KeyWait, %A_ThisHotkey%
If (SubStr(%A_ThisHotkey%, 1, 2) = SC)
Send +{%A_ThisHotkey%}
Else
Send +%A_ThisHotkey%
}
Else
{
If (SubStr(%A_ThisHotkey%, 1, 2) = SC)
Send {%A_ThisHotkey%}
Else
Send %A_ThisHotkey%
}
return