Jon*_*röm 6 windows usb-keyboard
我是一名程序员,写得非常快(虽然不是特别快)。在我工作的戴尔笔记本电脑中,我经常遇到两个错误,我怀疑这与一些底层的 Windows 键盘驱动程序有关(“底层”,因为这些错误也发生在完全不同品牌的键盘上)。它不是键盘的物理属性,我试过更换键盘本身。两个USB键盘,顺便说一句。
这些是奇怪的问题:
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
Run Code Online (Sandbox Code Playgroud)
Ctrl钥匙:
我假设该行
Capslock::Ctrl
Run Code Online (Sandbox Code Playgroud)
当您遇到密钥问题时,不会被注释掉Ctrl。
不同的键盘及其驱动程序的行为不同。CapsLock有些在发布时不会注册,因为它通常什么也不做。
在我的两个键盘上,按下并释放会在一个和另一个上CapsLock发送,但从来没有。按下并释放相应的(但不是相反的)可以解决此问题。{LCtrlDown}{RCtrlDown}{CtrlUp}Ctrl
除了注释掉该行之外,我想不出解决方案。
Shift钥匙:
我设法重现了您曾经解释过的行为,但我不知道我是如何做到的。
但是,我假设该行
RShift::LShift
Run Code Online (Sandbox Code Playgroud)
是罪魁祸首。
我无法解释如何在重新映射{RShiftDown}右键的情况下发送a Shift,但它确实解释了为什么按两个Shift键都无法解决此问题,因为释放右键Shift将发送{LShiftUp}.
除了注释掉该行之外,可能还有其他解决方案,但我不太确定您想用它实现什么目标。
| 归档时间: |
|
| 查看次数: |
2971 次 |
| 最近记录: |