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

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

保存。重启。完毕。

参考:

  • Registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout (renenyffenegger.ch)

  • https://superuser.com/a/1264295

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 可以轻松地将击键注入输入流。

参考

  • Ctrl2cap - Sysinternals | Microsoft Learn
  • https://superuser.com/a/1389340
  • Remap Caps Lock to Control on Windows 10 (github.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/116985.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Modbus通信协议

Modbus通信协议 一、概述 Modbus通信协议是一种工业现场总线协议标准,常用的Modbus协议有以下三种类型:Modbus TCP、Modbus RTU、Modbus ASCll。 Modbus通信协议解决了通过串行线路在电子设备之间发送信息的问题。该协议在遵循该协议的体系结构中实现主…

Elasticsearch 7.6 - API高阶操作篇

ES 7.6 - API高阶操作篇 分片和副本索引别名添加别名查询所有别名删除别名使用别名代替索引操作代替插入代替查询 场景实操 滚动索引索引模板创建索引模板查看模板删除模板 场景实操一把索引的生命周期数据迁移APIGEO(地理)API索引准备矩形查询圆形查询多边形查询 自定义分词器…

小白学Go基础01-Go 语言的介绍

Go 语言对传统的面向对象开发进行了重新思考,并且提供了更高效的复用代码的手段。Go 语言还让用户能更高效地利用昂贵服务器上的所有核心,而且它编译大型项目的速度也很快。 用 Go 解决现代编程难题 Go 语言开发团队花了很长时间来解决当今软件开发人员…

ThinkPHP 文件上传 fileSystem 扩展的使用

ThinkPHP 文件上传 ThinkPHP 文件上传 扩展 filesystem一、安装 FileSystem 扩展二、认识 filesystem 配置文件 config/filesystem.php三、上传验证(涉及到验证器的知识点)四、文件上传demo ThinkPHP 文件上传 扩展 filesystem ThinkPHP 为我们 提供了 …

C语言每日一练---Day(14)

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字:统计每个月兔子的总数 数列的和 💓博主csdn个人主页&#x…

Stable Diffusion 多视图实践

此教程是基于秋叶的webui启动器 1.Stable Diffsuion 使用多视图需要准备一个多角度open pose 图 我给大家提供一个可使用的。 2.需要添加图片到到controlnet当中,不要选择预处理器,选择模型为openpose的模型,然后需要点选同步图片尺寸。 3.然后填写关键字可以参照一下这个…

zookeeper 理论合集

目录 系统背景 集群结构 多个节点之间的角色 节点的状态 为什么引入 Observer 存储结构 ZNode 节点结构 ZNode 创建类型 内存数据存储 数据持久化 zookeeper 的容量大小 数据同步 消息广播 崩溃恢复 如何保证顺序一致性 核心流程 Leader 选举流程 脑裂问题 …

【nginx】access.log按照时间分割

access.log 大的网络访问下没有几天文件就变得非常大了&#xff0c;一直累计也不是办法啊 查看文件大小 du -sh *access.log 13G 按照时间把access.log分割一下 修改 nginx.conf 修改前的文件 修改后的文件 增加的内容 map $time_iso8601 $logdate {~^(?<ymd>\d{4}…

【ArcGIS Pro二次开发】(65):进出平衡SHP转TXT、TXT转SHP

最近一个小伙伴提了这么一个需求&#xff0c;需要把TXT和SHP进行互转。 这种TXT文件其实遇到了好几个版本&#xff0c;都有一点小差异。之前已经做过一个TXT转SHP的工具&#xff0c;但好像不适用。于是针对这个版本&#xff0c;做了互转的2个工具。 【SHP转TXT】 一、要实现的…

响应式图片与 CSS image-set

响应式图片 前置知识 art direction problem光栅图像与矢量图像 raster image and vector images img 能否担此重任 sizessrcset实际看一看 picture: img 的好姐妹 source实际看一看 CSS image-set 语法兼容性 其他注意事项 响应式图片 图片在网页中占据了 超过 60% 的浏览带…

nodepad++ 插件的安装

nodepad 插件的安装 一、插件安装二、安装插件&#xff1a;Json Viewer nodepad 有 插件管理功能&#xff0c;其中有格式化json以及可以将json作为树查看的插件&#xff1a; Json Viewer 一、插件安装 1、首先下载最新的notepad 64位【https://notepad-plus.en.softonic.com…

VTK——使用ICP算法进行模型配准

ICP算法 迭代最近点&#xff08;Iterative Closest Point&#xff0c;ICP&#xff09;算法是一种用于两个三维形状之间几何对齐&#xff08;也叫做配准&#xff09;的计算方法。通常&#xff0c;这两个形状至少有一个是点云数据。ICP算法用于最小化源点云与目标点云之间点到点…

java企业工程管理系统源码之提高工程项目管理软件的效率

高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中&#xff0c;管理不畅以及不良的项目执行&#xff0c;往往会导致项目延期、成本上升、回款拖后&#xff0c;最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统&#xff0c;确保…

Golang设计模式

Golang设计模式 Golang设计模式简介Golang工厂设计模式Golang单例设计模式Golang抽象工厂设计模式Golang建造者模式 (Builder Pattern)Golang 原型模式(Prototype Pattern)Golang适配器模式Golang 桥接模式&#xff08;Bridge Pattern&#xff09;Golang装饰器模式(Decorator …

Qt5界面Qt Designer上添加资源图片后,ModuleNotFoundError: No module named ‘rcc_rc‘ 的终极解决方案

在网上找了很久都没弄明白&#xff0c;最后还是自己思考解决了。 起因&#xff1a; 用 Qt Designer 添加资源文件作为背景图&#xff0c;编译 \resource\static\qrc> pyuic5 -o .\xx.py .\xx.ui发现在 xx.py 文件末尾中多了一个语句&#xff1a; import rcc_rc然后运行就…

vue项目——表情选择器

组件库地址&#xff1a;https://www.npmjs.com/package/emoji-mart-vue 1、下载 npm install --save emoji-mart-vue 2、引入 import { Picker } from emoji-mart-vueexport default {components: {Picker} }3、使用 <picker set"emojione" /> <picker …

ChatGPT 总结前端HTML, JS, Echarts都包含哪些内容

AIGC ChatGPT ,BI商业智能, 可视化Tableau, PowerBI, FineReport, 数据库Mysql Oracle, Office, Python ,ETL Excel 2021 实操,函数,图表,大屏可视化 案例实战 http://t.csdn.cn/zBytu

M1 Pro 新芯片安装python2 方案汇总

前言&#xff1a;磨刀不误砍柴工&#xff0c;环境装好&#xff0c;才能打工。M1 Pro 新芯片安装python2 文章目录 方案一 docker 容器构造环境&#xff08;如果涉及本地两个仓库需要关联则不适用&#xff09;方案二 使用 pyenv &#x1f680; 作者简介&#xff1a;作为某云服务…

thinkphp6 入门(3)--获取GET、POST请求的参数值

一、Request对象 thinkphp提供了Request对象&#xff0c;其可以 支持对全局输入变量的检测、获取和安全过滤 支持获取包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量&#xff0c;以及文件上传信息 具体参考&#xff1a;https://www.kanclou…

Fedora Linux Flatpak 八月推荐应用

导读本文介绍了 Flathub 中可用的项目以及安装说明。 Flathub 是获取和分发适用于所有 Linux 的应用的地方。它由 Flatpak 提供支持&#xff0c;允许 Flathub 应用在几乎任何 Linux 发行版上运行。 请阅读 “Flatpak 入门”。要启用 Flathub 作为你的 Flatpak 提供商&#xff…