
Ich arbeite als Programmierer und schreibe ziemlich schnell (aber nicht superschnell). Auf meinem Dell-Arbeitslaptop stoße ich häufig auf zwei Fehler, die meiner Meinung nach mit einem zugrunde liegenden Windows-Tastaturtreiber zu tun haben („zugrunde liegend“, da die Fehler auch auf einer völlig anderen Tastaturmarke auftreten). Es ist keine physikalische Eigenschaft der Tastatur, ich habe versucht, die Tastatur selbst auszutauschen. Beides sind übrigens USB-Tastaturen.
Dies sind die seltsamen Probleme:
Die CtrlTaste hängt, wenn ich schnell tippe - aber sie hängt nicht physisch - der "Freigabetastencode" erreicht anscheinend nie das Betriebssystem. Dies geschieht häufig, etwa alle 20 bis 120 Sekunden, wenn ich in der Zone bin. Um das Problem zu lösen, muss man 1) feststellen, dass die Strg-Taste vom System als gedrückt betrachtet wird, und 2) die Taste drücken und loslassen.Rechts CtrlTaste. Die linke CtrlTaste behebt den Fehler nicht (ich weiß, dass sie unterschiedliche Scancodes senden).
Die ShiftTaste „hängt“ auf die gleiche Weise, aber es gibt keine Möglichkeit, sie durch Drücken und Loslassen der Umschalttaste zu entsperren. Es scheint einen internen Zähler zu geben, der hängt. Dies geschieht etwa alle 10 bis 20 Tage. Um das Problem zu lösen, muss ich 1) erkennen, dass die ShiftTaste gedrückt ist (es ist unmöglich, mit Shiftgedrückter Taste zu arbeiten, das einfache Auswählen einer anderen Datei in Explorer.exe wird unmöglich, ganz zu schweigen vom Versuch, Code in Eclipse zu schreiben) und um es zu beheben, muss ich 2) ein Skript ausführen, das ich für AutoHotkey geschrieben habe und das
{SHIFT UP}
an das System sendet. Bevor ich das Skript geschrieben habe, musste ich den Computer neu starten ...
Das nervt mich. Was sind die Ursachen und wie kann ich diese Probleme lösen?
Bearbeiten:hier ist meine AHK-Datei:
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
Antwort1
CtrlSchlüssel:
Ich gehe davon aus, dass die Zeile
Capslock::Ctrl
Warnichtauskommentiert, wenn Sie Probleme mit dem CtrlSchlüssel hatten.
CapsLockVerschiedene Tastaturen und ihre Treiber verhalten sich unterschiedlich. Manche registrieren die Freigabe nicht , da sie normalerweise nichts bewirkt.
Auf meinen beiden Tastaturen CapsLocksendet das Drücken und Loslassen
{LCtrlDown}
auf der einen und{RCtrlDown}
auf der anderen Seite, aber nie{CtrlUp}
. Das Drücken und Loslassen der jeweiligen Taste Ctrl(aber nicht der gegenüberliegenden) behebt dieses Problem.Außer das Auskommentieren der Zeile fällt mir keine Lösung dafür ein.
ShiftSchlüssel:
Ich konnte das von Ihnen beschriebene Verhalten reproduziereneinmal, aber ich weiß nicht, wie ich das gemacht habe.
Ich gehe jedoch davon aus, dass die Zeile
RShift::LShift
ist der Täter.
Ich kann nicht erklären, wie ein
{RShiftDown}
mit der Neuzuordnung der richtigen Taste gesendet werden kann Shift, aber es erklärt mit Sicherheit, warum das Drücken keiner Shiftder Tasten das Problem behebt, da das Loslassen der richtigen ShiftTaste zum Senden führt{LShiftUp}
.Möglicherweise gibt es hierfür eine andere Lösung als das Auskommentieren der Zeile, aber ich bin nicht ganz sicher, was Sie damit erreichen möchten.