
Trabajo como programador y escribo bastante rápido (aunque no muy rápido). En mi computadora portátil Dell de trabajo, a menudo me encuentro con dos errores, que sospecho que tienen que ver con algún controlador de teclado de Windows subyacente ("subyacente", ya que los errores también ocurren en una marca de teclado totalmente diferente). No es una propiedad física del teclado; intenté reemplazar el teclado. Ambos teclados USB, por cierto.
Estos son los extraños problemas:
La Ctrlclave se bloquea cuando escribo rápido, pero no se bloquea físicamente; parece que el "código de clave de liberación" nunca llega al sistema operativo. Esto sucede con frecuencia, digamos cada 20 a 120 segundos cuando estoy en la zona. La forma de resolverlo es 1) darse cuenta de que la tecla de control se considera presionada por el sistema y 2) presionar y soltar la teclabien Ctrlllave. La Ctrltecla izquierda no soluciona el error (sé que envían códigos de escaneo diferentes).
La Shiftllave "se cuelga" de la misma manera, pero no hay manera de desbloquearla presionando y soltando la tecla Mayús, parece haber un contador interno que se cuelga. Esto sucede quizás cada 10 a 20 días. Para resolverlo, 1) tengo que darme cuenta de que la Shifttecla está presionada (es imposible trabajar con la Shifttecla presionada, simplemente seleccionar otro archivo en Explorer.exe se vuelve imposible, sin mencionar intentar escribir código en Eclipse) y arreglar Yo 2) ejecuto un script que escribí para AutoHotkey, que lo envía
{SHIFT UP}
al sistema. Antes de escribir el guión, tuve que reiniciar la computadora...
Me estoy molestando por esto. ¿Qué causa esto y cómo puedo resolver esos problemas?
Editar:aquí está mi archivo 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
Respuesta1
Ctrlllave:
Supongo que la línea
Capslock::Ctrl
eranocomentó cuando tuvo problemas con la Ctrlclave.
Los diferentes teclados y sus controladores se comportan de manera diferente. Algunos no se registran cuando CapsLockse publica, ya que normalmente no hace nada.
En mis dos teclados, presionar y soltar CapsLockenvía
{LCtrlDown}
en uno y{RCtrlDown}
en el otro, pero nunca{CtrlUp}
. Presionar y soltar el respectivo Ctrl(pero no el opuesto) soluciona este problema.Además de comentar la línea, no se me ocurre ninguna solución para esto.
Shiftllave:
Logré reproducir el comportamiento que explicaste.una vez, pero no sé cómo lo hice.
Sin embargo, supongo que la línea
RShift::LShift
es el culpable.
No puedo explicar cómo
{RShiftDown}
se puede reasignar un envío con la tecla correcta Shift, pero ciertamente explica por qué presionar ninguna Shifttecla soluciona este problema, ya que al soltar la tecla correcta Shiftse enviará{LShiftUp}
.Puede haber una solución para esto aparte de comentar la línea, pero no estoy muy seguro de qué quieres lograr con ella.