
나는 프로그래머로 일하고 있으며 글을 쓰는 속도가 매우 빠릅니다(그러나 초고속은 아닙니다). 제가 작업하는 Dell 노트북에서 저는 종종 두 가지 버그를 발견했습니다. 이는 일부 기본 Windows 키보드 드라이버와 관련이 있는 것으로 의심됩니다(버그는 완전히 다른 브랜드의 키보드에서도 발생하므로 "기본"). 이는 키보드의 물리적인 특성이 아니며, 키보드 자체를 교체해 보았습니다. 두 USB 키보드, btw.
이상한 문제는 다음과 같습니다.
빠르게 입력하면 키 Ctrl가 멈춥니다. 그러나 물리적으로 멈춘 것이 아니라 "릴리스 키 코드"가 운영 체제에 도달하지 않는 것 같습니다. 이런 일이 자주 발생합니다. 예를 들어 제가 해당 구역에 있을 때 20~120초마다 발생합니다. 이를 해결하는 방법은 1) 시스템에서 컨트롤 키가 눌린 것으로 간주된다는 사실을 인식하고 2) 컨트롤 키를 눌렀다 떼는 것입니다.오른쪽 Ctrl열쇠. 왼쪽 Ctrl키는 버그를 수정하지 않습니다(다른 스캔 코드를 보내는 것으로 알고 있습니다).
키 Shift는 같은 방식으로 "멈추지만" Shift 키를 눌렀다가 놓아 잠금을 해제할 수 있는 방법은 없으며, 멈추는 내부 카운터가 있는 것 같습니다. 이는 아마도 10~20일마다 발생합니다. 해결하려면 1) Shift키가 눌려진 상태( Shift누른 키로 작업할 수 없으며 단순히 Explorer.exe에서 다른 파일을 선택하는 것이 불가능해지고 Eclipse에서 코드를 작성하려는 시도는 말할 것도 없음)에 있음을 인식하고 수정해야 합니다. 2) 제가 AutoHotkey용으로 작성한 스크립트를 실행하여
{SHIFT UP}
시스템으로 보냅니다. 스크립트를 작성하기 전에 컴퓨터를 재부팅해야 했습니다...
나는 이것에 점점 짜증이 난다. 이 문제의 원인은 무엇이며 이러한 문제를 어떻게 해결할 수 있습니까?
편집하다:내 AHK 파일은 다음과 같습니다.
RShift::LShift
^!+r::
; Show a black "splash" to reveal script reloading.
Run %windir%\system32\cmd.exe /c
Reload
return
^!+e::
Edit
return
; Send shift-up.
#^!+s::
; Send shift-up to "fix" my office laptop bug.
SendInput {Shift Up}
return
; -------------------------
!+a::
Run C:\Program Files\Notepad++\notepad++.exe
return
^!+a::
Run %windir%\system32\notepad.exe
return
^!+d::
Run %programfiles%\git\bin\bash.exe, c:\RnD\PD\trunk
return
RunExplorer(root, startTitle, subpath, endTitle, filename)
{
SetTitleMatchMode, 3
IfWinExist, %endTitle%
{
WinActivate,%endTitle%
return
}
else
{
var = /e,
if (root != "")
{
var = /e,/root,%root%
}
Run "%windir%\explorer.exe" %var%
WinWait,%startTitle%,,4
}
if (ErrorLevel == 0)
{
#WinActivateForce
WinActivate,%startTitle%
WinWaitActive,%startTitle%,,10
if (subpath != "")
{
SendInput {LAlt Down}d{LAlt Up}{End}%subpath%{ENTER}{Tab}{Tab}
}
SendInput {Tab}%filename%
}
}
;Opens project home folder.
#e::
RunExplorer("C:\RnD", "RnD", "\protustom\trunk\implementation\Protom", "Protom", "ProtomDC")
return
;Opens My docs folder.
#m::
RunExplorer("H:\", "V0c1573 on 'Vcn.ds.volvo.net\It-got\Home07' (H:)", "My Documents", "My Documents", "Auto")
return
;Opens program files
#h::
RunExplorer("C:\", "Local Disk (C:)", "Program Files", "Program Files", "7")
return
#k::
Run %windir%\system32\Control.exe
return
#c::
Run calc.exe
return
#r::
Run regedit.exe
return
; Stores a screen shot as tmp.png on the desktop.
; Take screenshot manually before running this.
#q::
Run c:\WINDOWS\system32\mspaint.exe
WinWaitActive, namnlös - Paint,,15
if (ErrorLevel == 0)
{
Send ^v ; Paste screenshot.
Send !am ; Save as.
Send +{Tab}+{Tab}{Down}{ENTER}{Tab}{Tab} ; Save to desktop folder.
Send tmp{Tab}{Down}{End}{ENTER}{ENTER} ; Write tmp.png.
WinWaitActive, Spara som,,2
if (ErrorLevel == 0)
{
Sleep, 100 ; Wait a bit for dialog to load.
Send {Left}{Enter} ; Overwrite previous file.
}
Send !{F4} ; Close paint.
}
return
; Shift+CapsLock turns on/off CapsLock.
;Capslock::Ctrl
;+Capslock::Capslock
답변1
Ctrl열쇠:
나는 그 라인이
Capslock::Ctrl
~였다~ 아니다키 에 문제가 있을 때 주석 처리했습니다 Ctrl.
다양한 키보드와 해당 드라이버는 다르게 작동합니다. 일부는 일반적으로 아무 작업도 수행하지 않기 때문에 릴리스될 때 등록하지 않습니다 CapsLock.
내 두 키보드에서 눌렀다가 떼면 한쪽에서 다른 쪽으로 CapsLock전송되지만 절대로 . 각각의 항목 (반대 항목은 아님)을 눌렀다가 떼면 이 문제가 해결됩니다.
{LCtrlDown}
{RCtrlDown}
{CtrlUp}
Ctrl해당 라인을 주석 처리하는 것 외에는 이에 대한 해결책이 생각나지 않습니다.
Shift열쇠:
설명해주신 동작을 재현해냈습니다.한 번, 그런데 어떻게 했는지 모르겠어요.
그러나 나는 그 라인이
RShift::LShift
범인입니다.
{RShiftDown}
올바른 키를 다시 매핑하여 a 를 보내는 방법을 설명할 수는 없지만 올바른 키를 놓으면 보내기 때문에 두 키를 Shift모두 눌러도 문제가 해결되지 않는 이유는 확실히 설명됩니다 .ShiftShift{LShiftUp}
라인을 주석 처리하는 것 외에 이에 대한 해결책이 있을 수 있지만 이를 통해 무엇을 달성하고 싶은지 잘 모르겠습니다.