在所有应用程序中禁用 INSERT 键

在所有应用程序中禁用 INSERT 键

InsertCaps Lock只是碍事。这超级用户问题询问如何禁用Insert,但似乎适用于 Windows 7,因为它在 Windows 8.1 上对我不起作用。我已经能够Caps Lock使用此注册表项禁用:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,00,00,3a,00,00,00,00,00

但建议的解决方案:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Value Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,00,00,52,e0,00,00,00,00

继续覆盖各种文本编辑器中的文本,即使重新启动后也是如此。为了清楚起见,我想同时禁用Caps LockInsert,最好是在单个注册表项中禁用。

答案1

您需要指定三次参赛在地图中描述键盘扫描码映射器

例如,我在 Windows 8.1 上使用下一个重新映射(但由于经验值次):CapsLock其行为方式与 相同LShift,其功能被重新映射到ScrollLock;当然,后者的功能会丢失,即ScrollLock现在的行为方式CapsLock与所有重新映射之前相同。该重新映射在注册表中显示如下:

==> reg query "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map"

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
    Scancode Map    REG_BINARY    0000000000000000030000002A003A003A00460000000000

即在注册表编辑器导出方面:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,2a,00,3a,00,3a,00,46,00,\
  00,00,00,00

说明:(下表包含按DWORD列划分的这些条目(小端格式保存)并且单词是描述以十六进制表示,即交换)

00,00,00,00 ,00,00,00,00 ,03,00,00,00 ,2a,00,3a,00 ,3a,00,46,00 ,00,00,00,00
00000000     00000000     03000000     2A003A00     3A004600     00000000
│            │            │            │            │            │
│            │            │            │            │            └─ Null terminator
│            │            │            │            │
│            │            │            │            ├─ ScrollLock -> CapsLock
│            │            │            │            ╘═     0x0046 -> 0x003A
│            │            │            │
│            │            │            ├─ CapsLock -> LShift
│            │            │            ╘═   0x003A -> 0x002A
│            │            │
│            │            └─ Three entries in the map (including null entry)
│            │
│            └─ Header: Flags. Set to all zeroes.
└─ Header: Version. Set to all zeroes.

键盘内部扫描码Microsoft 键盘扫描码规范Insert扫描码值。不过我想说的0xE052 是,我看不出下一个注释的含义(应用于Insert、、Delete箭头等):

这些键可能在基本 Make 代码之前和基本 Break 代码之后有额外的“shift”和/或“unshift”扫描代码,具体取决于 Num Lock 的当前状态和 Shift 键的状态(当同时按住多个键时)。

答案2

您可能能够Insert在文本编辑器中禁用此功能。例如:

  • Notepad++,设置 > 快捷方式映射器 > Scintilla 命令,更改SCI_EDITTOGGLEOVERTYPENone并单击Apply
  • Visual Studio,工具>选项>环境>键盘,删除快捷键绑定Edit.OvertypeMode
  • Eclipse,Windows > Preferences > General > Keys,Toggle OverwriteText Editing类别中找到命令并单击Unbind command

如果你知道的话,请随意扩展上面的列表主要的具有删除功能的文本编辑器Insert

相关内容