大写锁定只能通过 Shift 键关闭,无论设置如何

大写锁定只能通过 Shift 键关闭,无论设置如何

我在 Sony VAIO VPC-F23BFX 笔记本电脑上使用 Windows 7 Home Premium。
问题是只能使用 Shift 键关闭大写锁定键。
在控制面板的区域设置中,无论我将其设置为使用大写锁定键还是 Shift 键关闭,它始终需要 Shift 键。
我检查了一下,此选项的注册表值已正确保存。
我还测试了此实用程序生成的扫描码为:

OnKeyDown, Key code=20, Control keys=, Key name CAPS LOCK  
OnKeyup, Key code=20, Control keys=, Key name CAPS LOCK  

第一次按下 Caps Lock 键时(它会打开);并且:

OnKeyup, Key code=20, Control keys=, Key name CAPS LOCK  

第二次按下时(它不会关闭)。
如果我随后按下 shift,它会生成:

OnKeyDown, Key code=16, Control keys=Shift{Left}, Key name SHIFT
OnKeyDown, Key code=20, Control keys=Shift{Left}, Key name CAPS LOCK
OnKeyup, Key code=20, Control keys=Shift{Left}, Key name CAPS LOCK
OnKeyup, Key code=16, Control keys=, Key name SHIFT

也许有些程序正在干扰键盘事件?(我没有使用 AutoHotkey 或类似程序)。

答案1

经过一番调查,我找到了罪魁祸首:我一直在使用禁用死键的自定义键盘布局,而且显然它还强制使用 Shift 键来关闭大写锁定(有些人称之为 ShiftLock)。

我之前曾尝试切换到默认布局,但似乎不起作用,现在我意识到这可能是因为我在现有的记事本窗口上进行了测试,而不是打开一个新窗口。

解决方案:我下载了莫斯科国立科学图书馆并基于该布局创建了新的布局,但未启用 ShiftLock。

答案2

您是否尝试过连接其他键盘并查看结果是否相同?我想也许这种行为可能是基于硬件的。

有趣的是,用户描述的行为与我很久以前使用的手动打字机的行为相同......

答案3

我不知道为什么会发生这种情况。但我可以用这个解决方法来解决这个问题:

  1. 控制面板 > 区域和语言
  2. 键盘和语言选项卡
  3. 更换键盘...
  4. 高级按键设置
  5. 选择“按 SHIFT 键”关闭 Caps Lock
  6. 申请
  7. 现在按下 SHIFT 键。大写字母现在应该消失了。
  8. 再次选择“按 CAPS LOCK 键”以关闭 Caps Lock。
  9. 申请

答案4

基于此帖子来自 Microsoft Answers 论坛

Control Panel > Regional and Language Options > Keyboards & Languages > Change Keyboard > Advanced Key Settings

您将在那里找到关闭的设置 Caps Lock with the SHIFT key,因为它应该是默认的。

并打开Press the CAPS LOCK key。如果您找不到此设置,请使用虚拟键盘或使用类似大写锁定

相关内容