地图上限锁定钥匙可以逃脱Windows系统上的键或任何键的任何键。
除了记录UNCAP在Windows上的工作原理外,此读数还包含有关如何在Linux和Mac上重新启动键的详细文档。
以下列表简要描述了UNCAP的一些功能。
Windows上还有其他几种方法和工具可将一个键映射到另一个键。但是他们似乎都没有上面列举的所有五个功能。例如,编辑Scancode MAP注册表值需要在每次更改后重新启动Windows系统。另一方面,Autohotkey需要编写一个附加的脚本文件。因此,编写UNCAP以支持上述所有五个功能。
UNCAP是单文件可执行文件: uncap.exe 。
运行它的最简单方法是下载并双击它。没有显示输出窗口。它在后台运行。一旦运行,每当按下盖帽锁定键,它就会通过UNCAP转换为逃生键。
可以通过指定自定义映射来覆盖CAPS锁定键的默认映射,以逃避密钥,但是要这样做,必须使用命令提示符或Windows Run Run对话框的参数运行UNCAP。以下步骤显示了如何使用uncap.exe映射盖帽键到左控制键。
将uncap.exe复制到Windows PATH变量中指定的目录。 C:Windows是一个非常方便的位置,可以将此文件复制到。
通过按Windows Logo Key + R来启动Windows运行对话框。
输入以下命令。
uncap 0x14:0xa2
按确定按钮。这将启动UNCAP。不会显示输出窗口。 UNCAP将在后台运行。每当按下CAPS锁定键时,UNCAP都会将其转换为左控制键。
要终止UNCAP,请运行以下命令。
uncap -k
在上述步骤中,CAPS锁定键通过指定0x14:0xa2作为UNCAP的参数来映射到左控制键。 CAPS锁定的虚拟键代码为0x14 ,控制密钥的虚拟键代码为0xa2 。因此,参数0x14:0xa2映射帽锁定键以控制密钥。
可以在https://msdn.microsoft.com/library/windows/desktop/dd375731.aspx上找到每个密钥的虚拟键代码列表。
当UNCAP不用任何参数运行时,它将映射限制锁定键以逃脱键。它可以使用参数运行,以将上限锁定密钥映射到任何密钥,任何密钥的任何键,或禁用任何密钥。
每个参数都是从https://msdn.microsoft.com/library/windows/desktop/dd375731.aspx发出的结肠分离的虚拟键代码。
可以将虚拟键代码指定为上述URL中提到的十六进制整数,也可以将其等效十进制表示法指定。这些详细信息在下面的示例列表中说明。
地图上限锁定键逃脱钥匙。
uncap
交换盖盖钥匙用逃生键锁定。
uncap 0x1b:0x14
CAPS锁定密钥默认为逃脱密钥。上面的命令映射将钥匙逃到盖帽锁定键,从而有效地交换了两个密钥。
十六进制整数对案例不敏感,因此以下命令等同于先前的命令。
uncap 0x1B:0x14
虚拟键代码可以用十进制表示法指定,因此以下命令等同于上一个命令。
uncap 27:20
地图盖锁定键左控制键。
uncap 0x14:0xa2
交换盖锁定键并左控制键。
uncap 0x14:0xa2 0xa2:0x14
此示例表明,可以指定多个参数将多个键映射到其他键。
这是将多个键映射到其他键的另一个示例。以下命令映射盖锁定钥匙左控制键,左控制键,以逃脱键并逃脱盖帽锁定键。
uncap 0x14:0xa2 0xa2:0x1b 0x1b:0x14
如果将键映射到自身,则不会发生映射。这可以用来覆盖映射盖锁定密钥的默认行为以逃脱键,并在将另一个键映射到某个键时将其拆开。这是一个示例,该示例可以解开锁定密钥并映射F1键以逃脱键。
uncap 0x14:0x14 0x70:0x1b
将键映射到另一个键,然后按下该键时,UNCAP将其转换为通过合成新的击键并将其注入系统的键将其映射到的键。但是,当键映射到自身并按下键时,它被忽略了,因此不会发生新的击键的翻译或综合。
如果键映射到0,则禁用键。这是一个完全禁用CAPS锁定键的示例。
uncap 0x14:0
uncap运行而无需默认显示控制台。要终止可能正在运行的另一个UNCAP实例,请使用-k或--kill选项。
uncap -k
上述命令杀死了有或没有控制台的所有其他UNCAP的实例。
要使用控制台运行UNCAP,请使用-c或--console选项。
uncap -c
当UNCAP在这样的控制台中运行时,可以通过按Ctrl + C终止它。
要在调试模式下运行UNCAP,请使用-d或--debug选项。
uncap -d
调试输出包含一行输出,其中包含有关键的每条按下的详细信息或键发布的详细信息。
要将击键详细信息记录到文件中,请使用-f或--file选项。
uncap -f C:keys.txt
仅使用此选项,UNCAP就会在后台运行,并将键键详细信息记录到指定的文件中。可以将此选项与-c或-d组合,以分别在控制台上运行UNCAP或在控制台上打印调试输出。
请参阅完整的用法详细信息以及支持的选项。
uncap -h
使用Windows 10上的Microsoft Edge Web浏览器下载UNCAP时,有时无法映射键。
以下措施发现解决该问题是不成功的:
右键单击uncap.exe ,然后选择属性,然后选择Unblock ,然后单击OK不会解决问题。
右键单击uncap.exe ,然后选择属性,然后转到“安全”选项卡,然后单击“编辑” ,然后删除以下两个帐户无法解决问题:
Unknown Account(S-1-15-2-3624051433-2125758914-1423191267-1740899205-1073925389-3782572162-737981194)
Unknown Account(S-1-15-3-3624051433-2125758914-1423191267-1740899205-1073925389-3782572162-737981194)
这些帐户会自动添加到使用Microsoft Edge下载的文件中。
已经发现以下解决方案成功解决了该问题:
将uncap.exe复制到同一目录中的新文件。当运行时,新文件成功地重新删除键。最后,删除下载的uncap.exe ,然后将新文件重命名为uncap.exe ,并正常使用。
将uncap.exe复制到其他目录。当运行成功重新键重新键时,新的复制文件。
Microsoft Edge Microsoft Edge 44.17763.1.0在Windows 10 Pro上观察到了这个问题。
还有其他工具和方法可用于将一个键映射到Windows,Linux和Mac上的另一个键。本节介绍了一些这样的工具和方法。
在不使用任何其他软件的情况下将键映射到Windows中的另一个键的一种方法是编辑注册表以在“ HKLM System CurrentControlset Control Control Control 键盘布局”注册表中添加称为“ Scancode Map”的值。
例如,要映射盖帽锁定键以逃脱密钥,请创建一个注册条目文件,即以REG为扩展程序的文件,例如UNCAP.REG,并带有以下内容。
REGEDIT4
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00
然后保存文件。然后双击此文件以将其添加到Windows注册表中。然后重新启动Windows系统。重新启动后,只要按下盖帽键,它就会像逃生键一样起作用。
可以通过在命令提示符中运行以下命令来添加相同的注册表值。
reg add "HKLMSYSTEMCurrentControlSetControlKeyboard Layout" /v "Scancode Map" /t REG_BINARY /d 00000000000000000200000001003a0000000000
注册表值中的十六进制代码是扫描代码图。扫描代码图的格式在https://msdn.microsoft.com/library/windows/hardware/hardware/jj128267.aspx#scan_code_code_mapper_mapper_for_keykeyboards中详细描述。
以下命令可用于查看此注册表值。
reg query "HKLMSYSTEMCurrentControlSetControlKeyboard Layout" /v "Scancode Map"
以下命令可用于删除此注册表值。
reg delete "HKLMSYSTEMCurrentControlSetControlKeyboard Layout" /v "Scancode Map"
尽管此方法的优势是它不需要其他软件,但此方法的缺点是它要求在注册表的每次更改后重新启动系统。
有一个称为SharpKeys的工具,带有图形用户界面来管理此注册表值。但是,在用夏普犬进行的每次更改之后,仍然需要重新启动。
对于称为Autohotkey的Windows,有一种相当复杂的脚本语言,可用于将一个键映射到另一键,以及其他许多方面。
使用Autohotkey将一个键映射到另一个键非常简单。例如,在安装Autohotkey之后,要映射盖帽锁定键以逃脱键,创建一个autohotkey脚本,即以AHK为扩展名的文件,例如uncap.ahk,则具有以下内容。
CapsLock::Esc
然后保存文件。然后双击此文件以使用此脚本运行Autohotkey。完成此操作后,只要按下盖帽锁定键,就会翻译以逃脱键。 Autohotkey图标出现在通知区域(系统托盘)中。要停止它,请右键单击图标,然后选择“退出”。
此方法具有一个优势,即它不需要重新启动系统。但是,Autohotkey是一种脚本语言,可用于执行许多其他事情,例如定义热键(快捷键),热弦(自动固定),宏(脚本动作)等。
在Linux上, setxkbmap命令可用于将一个键映射到X Window系统中的另一键。例如,以下命令映射帽锁定键以逃脱键。
setxkbmap -option caps:escape
在.lst文件中,可以在/usr/share/x11/xkb/规则中找到选项列表以及每个选项的简短说明,其名称与当前XKB规则相同。当前的XKB规则以及当前的映射选项可以在此命令的输出中找到。
setxkbmap -query
例如,如果将“ evdev”显示为当前规则,则请参见/usr/share/x11/xkb/rules/evdev.lst可用选项列表以及每个选项的简短描述。
在上述命令的输出中,以“规则:”开头的线路在上述命令的输出中显示了当前的XKB规则。键映射选项显示在以上命令的输出中以“选项:”开头的行中显示。如果没有这样的行,则没有设置键映射选项。
以下命令删除任何密钥映射选项。
setxkbmap -option
在Linux上,还有另一个称为xmodmap的命令,可以用来将一个键映射到X Window系统中的另一个键。但是,现在认为该命令过时。使用它也有点笨拙,尤其是在删除钥匙映射的同时。上一节中描述的setxkbmap命令是X窗口系统中映射密钥的首选方法。但是,本节介绍了如何使用xmodmap将一个键映射到另一个键,因为此方法仍在使用,尽管其使用逐渐消失。例如,本节介绍了如何映射盖帽锁定键以逃脱密钥。
在执行密钥映射之前,需要在X窗口系统中找到CAPS锁定密钥的密钥代码。这在重新映射密钥映射时很有用。这是获取CAPS锁定密钥的密钥代码的命令。
xmodmap -pke | grep Caps_Lock
对于PC键盘,键代码通常为66 。
以下命令映射盖锁定键以逃脱密钥。
xmodmap -e "remove Lock = Caps_Lock" -e "keysym Caps_Lock = Escape"
这是另一个命令,该命令还可以映射盖帽键,如果盖帽锁定的密钥代码为66。此命令使用keycode代替keysym 。
xmodmap -e "remove Lock = Caps_Lock" -e "keycode 66 = Escape"
以下两个命令显示当前详细信息。
xmodmap -pm -pke
以下命令撤消了映射。
xmodmap -e "keycode 66 = Caps_Lock" -e "add Lock = Caps_Lock"
请注意, keycode在上述命令中使用。如果keysym Escape = Caps_Lock在上面的命令中使用,则将Caps Lock键像Caps Lock这样的功能,它也将改变Escape键的行为,例如Caps Lock。使用keycode 66 = Caps_Lock确保仅恢复CAPS锁定密钥的行为。
在Linux上,可以使用loadKeys命令将一个键映射到控制台中的另一键。本节介绍了如何映射盖帽锁定键以逃脱钥匙。本节中的所有命令必须作为root或superuser运行。
在执行密钥映射之前,需要在控制台中找到CAPS锁定密钥的密钥代码。在复制密钥映射时,这也将很有用。
这是一种在控制台中查找CAPS锁定密钥的密钥代码的快速方法。
dumpkeys | grep -E "CtrlL_Lock|Caps_Lock"
在本节中,我们假设CAPS锁定密钥的密钥代码为58 ,并且映射到Caps_Lock密钥,这在大多数系统上确实是正确的。在基于Debian的系统上,可以将关键代码58映射到CtrlL_Lock ,以围绕Debian Bug 514464和内核BUG 7746工作。
以下命令映射盖锁定键以逃脱密钥。
(dumpkeys | grep keymaps; echo keycode 58 = Escape) | loadkeys
以下命令撤消了映射。
(dumpkeys | grep keymaps; echo keycode 58 = Caps_Lock) | loadkeys
由于MacOS Sierra版本10.12.1,因此很容易映射盖帽锁定以通过系统首选项逃脱。执行以下步骤进行操作。
在OS X中,通过系统首选项可用的映射选项非常有限。例如,它不允许将盖锁定映射到逃脱。因此,通常必须安装其他软件以在OS X中映射密钥。
SEIL是一个流行的用于将一个键映射到另一个键的工具。这是我美丽的女友和妻子的一篇文章,描述了如何使用SEIL映射帽子锁定以在OS X上逃脱:http://sunainapai.in/blog/map-caps-caps-caps-lock-to-to-escape-escape-escape-on-mac-os-os-x/。
这是有关此项目的有用链接的列表。
这是免费的开源软件。您可以根据麻省理工学院许可条款使用,复制,修改,合并,发布,分发,转销和/或出售其副本。有关详细信息,请参见License.MD。
该软件是“原样”提供的,没有任何形式的明示或暗示保修。有关详细信息,请参见License.MD。
要报告错误,建议改进或提出问题,请访问https://github.com/susam/uncap/issues。