首页 > 系统相关 >Windows 重新映射 CapsLock 大写锁定到 Ctrl

Windows 重新映射 CapsLock 大写锁定到 Ctrl

时间:2023-09-02 14:01:43浏览次数:46  
标签:Control 00 Ctrl Windows 键盘 CapsLock 1d 3a Ctrl2cap

Windows 重新映射 CapsLock 大写锁定到 Ctrl

本要点中的这些方法适用于我的美国键盘布局。我不确定其他布局。如果出现问题,请恢复您的更改;删除您创建的注册表项(并重新启动)。

强烈推荐 方法5 ctrl2cap,因为不会影响 FastGestures 的触控板三指滑动

方法1.通过 regedit 手动修改

regedit 中导航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout 并在名为 Scancode Map 中创建一个新的二进制值。

00 00 00 00 00 00 00 00 02 00 00 00 1d 00 3a 00 00 00 00 00

保存。重启。完毕。

参考:

Windows Registry Editor Version 5.00

; 这一串十六进制数据分为五组,每组四个字节:
;   00,00,00,00,\    header 版本 (固定值 00000000)
;   00,00,00,00,\    header flags (固定值 00000000)
;   04,00,00,00,\    # 该文本描述了一组条目(在此情况下是3个),以及一个空终止符行。
;                    每个条目都由一个2字节的配对组成:要发送的键码和要发送的键盘按键。
;                    每个条目按照“最不重要字节,最重要字节”的顺序排列,例如 0x1234 变为 34,12
;   1d,00,3a,00,\    发送 LEFT CTRL (0x001d) code 当用户按下 CAPS LOCK key (0x003a) 
;   38,00,1d,00,\    发送 LEFT ALT (0x0038) code 当用户按下 LEFT CTRL key (0x001d) 
;   3a,00,38,00,\    发送 CAPS LOCK (0x003a) code 当用户按下 LEFT ALT key (0x0038) 
;   00,00,00,00      NULL 终止符

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,\
                   00,00,00,00,\
                   04,00,00,00,\
                   1d,00,3a,00,\
                   38,00,1d,00,\
                   3a,00,38,00,\
                   00,00,00,00

方法 2. 创建您自己的注册表项文件

创建一个新的 .reg 文件并将其命名为有意义的名称,例如 capstoctrl.reg 。编辑文件并粘贴以下内容:

Windows Registry Editor Version 5.00

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

保存。运行该文件。重启。完毕。

方法 3. 通过 PowerShell(以管理员身份)

以管理员身份打开 PowerShell (Win + X)

$hexified = "00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00".Split(',') | % { "0x$_"};

$kbLayout = 'HKLM:\System\CurrentControlSet\Control\Keyboard Layout';

New-ItemProperty -Path $kbLayout -Name "Scancode Map" -PropertyType Binary -Value ([byte[]]$hexified);

保存。运行该文件。重启。完毕。

方法 4. Microsoft PowerToys

尝试一下 PowerToys 不仅可以重新映射大写锁定键,还可以重新映射其他键。 Microsoft PowerToys:自定义 Windows 10 的实用程序。

Microsoft PowerToys:键盘管理器使您能够重新定义键盘上的按键。

16936313430601693631342489.png

以上方法都有问题,如果你还使用其他依赖 ctrl 的软件可能就会出问题。

这些软件如果需要监听原始按键,是依旧可以监听到 caps 按下。这个时候在 sysinternals 工具箱有一个叫 ctrl2cap 的工具

方法5. Ctrl2Cap 驱动级修改

出处:Ctrl2cap - Sysinternals | Microsoft Learn

Ctrl2cap 是一个内核模式设备驱动程序,用于筛选系统的键盘类驱动程序,以便将 caps-lock 字符转换为 control 字符。 像我这样从 UNIX 迁移到 NT 的人习惯于将 control 键置于标准电脑键盘上 caps-lock 键的位置,因此这样的实用工具对于我们的编辑工作至关重要。

安装

  • 打开管理员 cmd,或者 管理员 powershell
  • 从解压缩 Ctrl2cap 文件的目录中运行命令 Ctrl2cap.exe /install 以安装 Ctrl2cap。 若要卸载,ctrl2cap /uninstall

Ctrl2cap 的工作原理

在 NT 4 上,Ctrlcap 实际上相当简单。 它只是将自身附加到键盘类驱动程序,以便捕获键盘读取请求。 对于每个请求,它都会发布一个 I/O 完成回调,此时它会查看返回的扫描代码。 如果它恰好是 caps-lock,则 ctrl2cap 将其更改为left-control。

在 Win2K 上,Ctrl2cap 是一个 WDM 筛选器驱动程序,它在键盘类设备之上的键盘类设备堆栈中分层。 这与 Win2K DDK 的 kbfiltr 示例形成对比,后者将自己分层在 i8042 端口设备和键盘类设备之间。 出于以下几个原因,我选择在键盘类设备上分层:

  • 这意味着 Ctrl2cap IRP_MJ_READ 拦截和操作代码在 NT 4 和 Win2K 版本之间共享。
  • 我不需要提供 INF 文件,也不需要让用户通过设备管理器来安装 Ctrl2cap - 我只需修改相应的注册表值(键盘类设备的 HKLM\System\CurrentControlSet\Control\Class UpperFilters 值)。

我的方法的缺点是(这是一个优点还是缺点,取决于你的观点):

  • 由于我没有通过设备管理器使用 INF 文件进行安装,因此不会警告用户 Ctrl2cap 驱动程序文件未由 Microsoft 进行数字签名。

在这种情况下,我觉得优点大于缺点。 但是,在为 Ctrl2cap 上的 Win2K 键盘筛选器建模之前,我强烈建议你学习 Win2K DDK 中的 kbfiltr 示例。 Kbfiltr 在键输入序列中的拦截点使 kbfiltr 可以轻松地将击键注入输入流。

参考

标签:Control,00,Ctrl,Windows,键盘,CapsLock,1d,3a,Ctrl2cap
From: https://blog.51cto.com/curtis/7332513

相关文章

  • 创建Windows锁定桌面快捷方式
    首先,右击桌面,选择新建,选择快捷方式,新建一个快捷方式在出现的对话框中键入如下值%windir%/system32/rundll32.exeuser32.dll,LockWorkStation(注区分大小写))然后为快捷方式启个名称即可点击创建好的桌面快捷方式即可锁屏右键点击创建好的桌面快捷方式,点击属性,可......
  • Windows修改电脑DNS
    访问浏览器出现无法访问此页面,找不到DNS地址,则可以通过如下方式修改DNS按下windows键+R键(两个键一起按)出现下面窗口输入control按回车键(Enter键)就会出现下面的窗口DNS可以填下面这些:114.114.114.114和114.114.115.115阿里DNS:223.5.5.5和223.6.6.6腾讯DNS:11......
  • how to use R2023a_Doc_Windows.iso
    referencepage:https://www.mathworks.com/help/install/ug/install-documentation-on-offline-machines.htmlmpminstall-doc--matlabroot="C:\ProgramFiles\MATLAB\R2023a"......
  • 【Windows安装Docker】
    【一】引入在上一章节已经成功的在LinuxCentOS8.4远程服务器中安装了Docker,下面让我们一起来试试如何在Windows10中安装Docker并运行起来。有人说你既然在Linxu环境中安装了Docker了,为什么还要到Windows环境中去折腾一个Dokcer环境呢?这不是在浪费时间内。那么那就大错特错了......
  • VMware Tools 12.3.0 发布,新增对搭载 Apple 芯片的 Mac 上运行 Windows ARM 虚拟机的
    VMwareTools12.3.0发布,新增对搭载Apple芯片的Mac上运行WindowsARM虚拟机的支持请访问原文链接:https://sysin.org/blog/vmware-tools-12/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwareTools是一套安装在虚拟机的操作系统中的实用程序。VMwareTool......
  • 使用windows也能上架你的ipa到苹果
    比xcode更快捷方便的平台-appuploader,易上架是一个非常快捷的应用上传工具,我们的平台http://www.appuploader.net/易上架applicationloader苹果官方提供的工具xcode上架ipa非常复杂麻烦。因此,经过易上架团队将这一过程简化,推出云上架。用户只需要通过web浏览器便可方便上传你的i......
  • ​​​windows上传ipa到开发者中心(app store)的方法​​
    假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开发者中心才能在构建版本里选择构建版本上架。那么我们怎么将ipa上传上去构建版本呢?我们需要借助第三方的工具。苹果为我们提供了xco......
  • windows上传ipa文件到app store的方法​
    在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。但是在苹果开发者中心无法直接上传ipa文件,它要求我们使用xcode或transport等工具上传ipa文件,但是xcode和transport不能安装在windows电脑。因此,我们需要使用其他第三方的工具来上......
  • Mysql主从复制(一主一从)+Mycat(windows-1.X版本)实现读写分离
    项目中,如果数据量大的情况下,可以使用【数据库主从复制+读写分离】的方式优化,其他方式也很多,这里只记录下这种方式一、说明1.需要的环境等:序号环境说明1mysql5.7服务器两台数据库服务器,一台作为主数据库,一台作为从数据库2jdk安装mycat的时候会用到jdk3my......
  • svchost.exe占用内存过高--(windows update检查更新时一直处于正在检查)
    1.打开任务管理器-进程,找到svchost对应占用内存过高对应PID值例如:60982.打开任务管理器-服务,查找PID为6098的服务,如果是windowsupdate引起的则操作以下步骤 1)右击windowsupdate-属性设为停止 2)C:\windows\softwaredistribution删除里面......