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

news2024/10/7 2:27:12

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.coloradmin.cn/o/963491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录第35天|860.柠檬水找零 , 406.根据身高重建队列(很多细节点注意一下),452. 用最少数量的箭引爆气球

860.柠檬水找零 思路比较简单 class Solution {public boolean lemonadeChange(int[] bills) {//然后向你付 5 美元、10 美元或 20 美元//如果收到5,直接收下//如果收到10,需要付回去5//如果收到20,需要付回去105或者555//开始时我手上拥有…

java基础-----第八篇

系列文章目录 文章目录 系列文章目录一、Java类加载器二、双亲委托模型 一、Java类加载器 JDK自带有三个类加载器:bootstrap ClassLoader、ExtClassLoader、AppClassLoader。 BootStrapClassLoader是ExtClassLoader的父类加载器,默认负责加载%JAVA_HOME…

Ops实践 | 国产化KylinOS系统中快速部署企业内部高性能DNS服务器、时间同步服务器 (精选)...

各位看友,由于微信公众号推送机制改变,现在需要设置为星标才能收到的本公众号推送消息哟。关注回复【学习交流群】加入【安全开发运维】答疑交流群 请朋友们【多多点击文中的广告】,支持作者更新更多文章。 目录: 本文为作者原创文章&#xf…

c++数据结构之 队列

c数据结构 --- 队列 队列的特点队列的相关概念:队列的操作:队列的分类:演示例子简单的例子例子2、循环队列的C实现 队列的特点 队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点&#x…

学习振弦采集模块的开发基本原理

飞讯教学篇:学习振弦采集模块的开发基本原理 振弦采集模块是一种用于测量物体振动、形变、压力等物理量的电子设备。它通过测量物体的振动变化,可以得出物体在不同条件下的动态特性,对于工程设计、科学研究、医学检测等领域都有广泛应用。本…

代码随想录笔记--二叉树篇

1--递归遍历 1-1--前序遍历 前序遍历&#xff1a;根→左→右&#xff1b; #include <iostream> #include <vector>struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), le…

6400万美元:苹果与SpaceX达成合作协议,推进苹果 SOS 卫星服务

根据最新披露的文件&#xff0c;苹果卫星服务提供商Globalstar近期与马斯克旗下的SpaceX达成一项重要合作协议&#xff0c;向SpaceX支付了6400万美元&#xff0c;用于在2023-2025年期间发射卫星&#xff0c;以进一步扩展苹果iPhone系列的SOS卫星服务。 这项卫星服务的主要目的是…

Citespace、vosviewer、R语言的文献计量学 、SCI

文献计量学是指用数学和统计学的方法&#xff0c;定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体&#xff0c;注重量化的综合性知识体系。特别是&#xff0c;信息可视化技术手段和方法的运用&#xff0c;可直观的展示主题的研究发展历程、研究现状、研究…

中国太保首席数据库专家林春:先难后易,核心系统数据库升级复盘

P17 是中国太平洋保险&#xff08;以下简称太保&#xff09;关联关系最为复杂、商业数据库绑定程度最深、业务影响最多的核心系统之一。但就是这样一个对太保业务至关重要的系统却被选为数据库升级的“实验品”。当然&#xff0c;说是“实验品”只是因为这是太保第一次对关键的…

怎样来实现流量削峰方案

削峰从本质上来说就是更多地延缓用户请求&#xff0c;以及层层过滤用户的访问需求&#xff0c;遵从“最后落地到数据库的请求数要尽量少”的原则。 1.消息队列解决削峰 要对流量进行削峰&#xff0c;最容易想到的解决方案就是用消息队列来缓冲瞬时流量&#xff0c;把同步的直…

ArcGIS地块面积分割调整工具插件

地块分割调整工具可以实现将选定的图斑按照面积比例或者指定的面积&#xff0c;分割成多个图斑。 各个图斑的面积用逗号分隔&#xff0c;比例分割设置时&#xff0c;用整数表示。 面积分割时&#xff0c;最后一个图斑的面积可以不写&#xff0c;插件可以自动计算图斑的面积&a…

1448. 统计二叉树中好节点的数目(javascript)1448. Count Good Nodes in Binary Tree

给你一棵根为 root 的二叉树&#xff0c;请你返回二叉树中好节点的数目。 「好节点」X 定义为&#xff1a;从根到该节点 X 所经过的节点中&#xff0c;没有任何节点的值大于 X 的值。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,3,null,1,5] 输出&#xff1a;4 解释…

unity面试题(性能优化篇)

CPU 预处理、缓存数据 注释空的unity函数 运算cpu->gpu 减少昂贵计算(开方) 限制帧数 加载(预加载、分帧加载、异步加载、对象池) 慎用可空类型比较 避免频繁计算(分帧、隔帧) 算法优化 变体收集预热 使用clear操作代替容器的new操作 unity spine使用二进制格式…

mac有些软件卸载不了怎么办?正确的Mac软件卸载方法

很多用户Mac用户在整理磁盘空间时发现有很多不常用的软件想要卸载&#xff0c;一顿卸载操作之后发现有些第三方软件是无法完成卸载或成功卸载之后桌面仍保留该软件的图标&#xff0c;在使用Mac过程中遇到有些软件卸载不了怎么办&#xff1f;别着急&#xff0c;小编这就给你支招…

基于指数分布算法优化的BP神经网络(预测应用) - 附代码

基于指数分布算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于指数分布算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.指数分布优化BP神经网络2.1 BP神经网络参数设置2.2 指数分布算法应用 4.测试结果&#xff1a;5…

2023年淘宝商家成长层级与利好规则

淘宝店铺成长层级越高&#xff0c;对店铺的经营会越好&#xff0c;但有些小伙伴对成长层级和商家利好规则内容的更新变化不太清楚&#xff0c;下面我们就来一起了解一下吧。 一、店铺成长层级 1、入口&#xff1a;店铺层级与权益 2、晋升路径 V1-V2&#xff1a;基础运营&#…

flutter plugins插件【二】【FlutterAssetsGenerator】

2、FlutterAssetsGenerator 介绍地址&#xff1a;https://juejin.cn/post/6898542896274735117 配置assets目录 ​ 插件会从pubspec.yaml文件下读取assets目录&#xff0c;因此要使用本插件&#xff0c;你需要在pubspec.yaml下配置资源目录 flutter:# The following line ens…

A. Increasing and Decreasing

题目&#xff1a;样例&#xff1a; 输入 3 1 4 3 1 3 3 100 200 4输出 1 3 4 -1 100 150 180 200 思路&#xff1a; 思维题&#xff0c;这里我们看一下规律&#xff0c;我们已知a(1)&#xff0c;a(n) &#xff0c;又因为 数列b 应该是递减的&#xff0c;而观察规律可知 &#x…

【云计算•云原生】5.云原生之初识DevOps

文章目录 1.DevOps背景2.DevOps概念3.DevOps工具链 1.DevOps背景 软件开发必须包含两个团队&#xff1a;开发团队和运维团队 开发团队负责开发项目&#xff0c;系统迭代更新运维团队负责项目测试以及部署上线&#xff0c;维持系统稳定运行 一个软件周期中是由这两个团队相互…

【python】—— 函数详解

前言&#xff1a; 本期&#xff0c;我们将要讲解的是有关python中函数的相关知识&#xff01;&#xff01;&#xff01; 目录 &#xff08;一&#xff09;函数是什么 &#xff08;二&#xff09;语法格式 &#xff08;三&#xff09;函数参数 &#xff08;四&#xff09;函…