Shift 키를 누르려면 키를 더 길게 누르고 싶습니다.
내가 시도한 것은 다음과 같습니다.
$a::
KeyWait, a, T0.7
If ErrorLevel
send +{a}
Else
send {a}
Return
키가 작동되면 Aa를 보내고 일반적으로 (각 키에 대한 코드를 다시 작성하지 않고 모든 키에 대해) 원합니다.
답변1
Shift 키를 누르려면 0.7초보다 긴 키를 누르세요.
#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
편집하다:
#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
답변2
대문자를 길게 누르는 것은 좋은 생각이었지만 입력하는 동안 문제가 발생하여 주요 목표였던 스크립트의 목표를 변경했습니다."길게 누르면서 숫자만 쓰려면" 키보드에 숫자 패드가 없기 때문에 이것이 최종 코드였습니다.
물론 특별한 감사를 드립니다사용자3419297
; 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