Quero pressionar uma tecla por mais tempo para pressioná-la com shift
Aqui está o que eu tentei:
$a::
KeyWait, a, T0.7
If ErrorLevel
send +{a}
Else
send {a}
Return
Ele envia Aa quando a chave está ativa, e eu quero isso em geral (para todas as chaves, sem reescrever um código para cada chave).
Responder1
Pressione uma tecla por mais de 0,7 segundos para pressioná-la com shift:
#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
Responder2
Pressionar mais para MAIÚSCULAS foi uma boa ideia, mas houve problemas durante a digitação então mudei o objetivo do script que era meu objetivo principal "para escrever apenas números enquanto pressiona por mais tempo"como não tenho um teclado numérico no teclado, este foi meu código final:
claro um agradecimento especial ausuário3419297
; 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