
Eu trabalho como programador e escrevo muito rápido (embora não muito rápido). No meu trabalho, laptop Dell, muitas vezes me deparo com dois bugs, que suspeito que tenham a ver com algum driver de teclado subjacente do Windows ("subjacente", já que os bugs também ocorrem em uma marca de teclado totalmente diferente). Não é uma propriedade física do teclado, tentei substituir o próprio teclado. Ambos teclado USB, aliás.
Estes são os problemas estranhos:
A Ctrlchave trava quando digito rápido - mas não trava fisicamente - o "código da chave de liberação" nunca chega ao sistema operacional, ao que parece. Isso acontece com frequência, digamos a cada 20 a 120 segundos quando estou na zona. A forma de resolver isso é 1) perceber que a tecla de controle é considerada pressionada pelo sistema e 2) pressionar e soltar o botãocerto Ctrlchave. A tecla esquerda Ctrlnão corrige o bug (sei que eles enviam códigos de verificação diferentes).
A Shifttecla "trava" da mesma forma, mas não há como desbloqueá-la pressionando e soltando a tecla shift, parece haver um contador interno que trava. Isso acontece talvez a cada 10 a 20 dias. Para resolver I 1) tenho que perceber que a Shifttecla está pressionada (é impossível trabalhar com a Shifttecla pressionada, simplesmente selecionar outro arquivo no Explorer.exe torna-se impossível, sem falar na tentativa de escrever código no Eclipse) e corrigir 2) executo um script que escrevi para o AutoHotkey, que envia
{SHIFT UP}
para o sistema. Antes de escrever o script, tive que reiniciar o computador...
Estou ficando irritado com isso. O que causa isso e como posso resolver esses problemas?
Editar:aqui está meu arquivo 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
Responder1
Ctrlchave:
Presumo que a linha
Capslock::Ctrl
eranãocomentou quando você teve problemas com a Ctrlchave.
Diferentes teclados e seus drivers se comportam de maneira diferente. Alguns não serão registrados quando CapsLockfor lançado, pois geralmente não faz nada.
Nos meus dois teclados, pressionar e soltar CapsLockenvia
{LCtrlDown}
um e{RCtrlDown}
outro, mas nunca{CtrlUp}
. Pressionar e soltar o respectivo Ctrl(mas não o oposto) corrige isso.Além de comentar a linha, não consigo pensar em solução para isso.
Shiftchave:
Consegui reproduzir o comportamento que você explicouuma vez, mas não sei como fiz isso.
No entanto, presumo que a linha
RShift::LShift
é o culpado.
Não posso explicar como um
{RShiftDown}
pode ser enviado com a Shifttecla correta remapeada, mas certamente explica por que pressionar nenhuma Shiftdas teclas corrige isso, já que liberar a Shifttecla correta enviará{LShiftUp}
.Pode haver uma solução para isso além de comentar a linha, mas não tenho certeza do que você deseja alcançar com ela.