답변:
이것은 실제로 AHK 타이머 스크립트로 수행 할 수 있습니다. 이 스크립트는 Caps Lock을 눌렀을 때 등록하고 Capslock Up을 가로 채어 특정 밀리 초가 지난 경우에만 실행되도록합니다. 기본 시간 초과는 0.2 초이며 시스템 트레이에서 구성 할 수 있습니다.
; AutoHotKey - Suppress CapsLock
; This is a modified version of a scrpt by Lexikos, taken from:
; http://www.autohotkey.com/board/topic/82509-software-fix-for-double-clicking-mouse/
RegRead minDelay, HKCU, Software\LongCapsLock, MinDelay
if ErrorLevel
minDelay := 200 ; Default setting.
#NoTrayIcon ; Hide initial icon.
Menu Tray, Icon, %A_WinDir%\System32\main.cpl ; Set icon.
Menu Tray, Icon ; Show icon.
Menu Tray, NoStandard
Menu Tray, Add, &Configure, TrayConfigure
Menu Tray, Add, E&xit, TrayExit
Menu Tray, Default, &Configure
Menu Tray, Click, 1 ; Single-click to configure.
Menu Tray, Tip, Long CapsLock
global _starttime
global timing := 0
CapsLock::
if (timing = 0) {
timing := 1
_startTime := A_TickCount
}
return
CapsLock Up::
if (timing = 1) {
_timeDiff := A_TickCount - _startTime
;MsgBox diff: %_timeDiff%
if (_timeDiff > minDelay) {
Send {CapsLock down}
}
timing := 0
}
return
TrayConfigure:
prompt := "Enter minimum duration needed to hold Caps Lock`n"
. "before it is toggled. The unit is milliseconds."
Loop {
InputBox newMinDelay, Long CapsLock, %prompt%,,,,,,,, %minDelay%
if ErrorLevel ; Cancelled?
return
if (newMinDelay+0 >= 150 && newMinDelay <= 10000) ; Valid?
break
if (A_Index = 1)
prompt .= "`n`nPlease enter a number between 150 and 10000."
}
minDelay := newMinDelay
if (minDelay = 200)
RegDelete HKCU, Software\LongCapsLock
else
RegWrite REG_DWORD, HKCU, Software\LongCapsLock, MinDelay, %minDelay%
return
TrayExit:
ExitApp
여기에 두 개의 AHK 스크립트가 있습니다. 스크립트에서 내가 언급 한 것보다 더 설명을하려면 아래에 주석을 추가하십시오.
첫 번째는 더 복잡하고 실패 할 가능성이 있지만 1 초 동안 기다린 후 문자 키 누름으로 CapsLock을 보냅니다.
두 번째는 "Caps Lock"상태를 토글합니다. 지연을 원하는 이유가 다른 프로그램의 CapsLock 핫키에 적합하지 않은 경우 바람직하지 않을 수 있습니다.
Delay
두 번째 줄에서 변수를 변경하여 지연을 구성 할 수 있습니다 .
; Time to wait in milliseconds
Delay = 1000
; Variable used to ignore key repeats
; (Windows sends them when a key is held down)...
CapsLockHeld = 0
; This starts the timer on key *down*.
; Time is measured in milliseconds.
; Timer resolution should be approximately 20 ms.
; The negative time means run only once.
; It will reset the timer if it is already running.
CapsLock::CapsLockDown()
; This stops the timer on key *up*.
CapsLock Up::CapsLockUp()
; This sends a CapsLock keypress when the timer runs out.
SendCapsLock:
SetTimer, SendCapsLock, Off
HotKey, CapsLock, Off
HotKey, CapsLock Up, Off
SendInput, {CapsLock}
HotKey, CapsLock Up, On
HotKey, CapsLock, On
Return
; Using functions because otherwise global variables die
CapsLockDown() {
global CapsLockHeld
global Delay
If (CapsLockHeld == 1) {
Return
}
CapsLockHeld = 1
SetTimer, SendCapsLock, %Delay%
Return
}
CapsLockUp() {
global CapsLockHeld
CapsLockHeld = 0
SetTimer, SendCapsLock, Off
Return
}
; Time to wait in milliseconds
Delay = 1000
; Variable used to ignore key repeats
; (Windows sends them when a key is held down)...
CapsLockHeld = 0
; This starts the timer on key *down*.
; Time is measured in milliseconds.
; Timer resolution should be approximately 20 ms.
; The negative time means run only once.
; It will reset the timer if it is already running.
CapsLock::CapsLockDown()
; This stops the timer on key *up*.
CapsLock Up::CapsLockUp()
; This sends a CapsLock keypress when the timer runs out.
SendCapsLock:
SetTimer, SendCapsLock, Off
If (GetKeyState("CapsLock", "T"))
SetCapsLockState, Off
Else
SetCapsLockState, On
Return
; Using functions because otherwise global variables die
CapsLockDown() {
global CapsLockHeld
global Delay
If (CapsLockHeld == 1) {
Return
}
CapsLockHeld = 1
SetTimer, SendCapsLock, %Delay%
Return
}
CapsLockUp() {
global CapsLockHeld
CapsLockHeld = 0
SetTimer, SendCapsLock, Off
Return
}
Google 검색 에서 http://chuchuva.com/software/capslockdelay/ 링크가 제공되었습니다 . 세 가지 다운로드 링크의 첫 번째는 여전히 작동합니다.
AutoHotKey 스크립트에 대해 모르겠습니다. 아마도 AutoHotKey와 caplock delay에 대해서는 google입니다.
"토글 러"라는 오래된 유틸리티 (2001 년 1 월 1 일자 v1.0)가 Windows 10에서 때때로 비활성화되는 것처럼 보이지만 가장 잘 작동합니다. SmartShift 기능을 사용하여 CapsLock에 지연을 추가 할 수 있습니다. Shift 키와 문자를 누르면 CapsLock을 해제합니다. 내가 사용하지 않는 다른 많은 기능이 있습니다.
편집자 주 : 개발자 인 Aestas Software가 더 이상 사용되지 않는 것처럼 보이며 2001 년 이후 소프트웨어가 업데이트되지 않은 것으로 보입니다. 그러나 여전히 http://download.cnet.com/Toggler 에서 다운로드 할 수 있습니다. /3000-2072_4-10054498.html