在 Windows 10 上切换 CTRL-CAPS

在 Windows 10 上切换 CTRL-CAPS

我已经能够重新映射Ctrl-Caps在以前版本的 Windows(XP 和 7)上,使用教程。也许扫描码对于 Windows 10 来说有所不同。我不确定。无论出于什么原因,这种方法不再有效。

那么有人知道如何在 Windows 10 上重新Ctrl映射吗?Caps

答案1

应该可以。我已经使用 Powershell 脚本(需要从 Admin PowerShell 控制台运行)进行了各种重新映射。可以轻松添加或减去重新映射对。它已针对您想要的重新映射进行了设置,只需复制和粘贴即可。

##############################################################
$SimplePairs = @(
0x3a, 0x1d # CapsLock > L Ctrl
0x1d, 0x3a # L Ctrl > CapsLock
)
$ExtendedPairs = @(
# 0x5d, 0xe0, 0x1d, 0xe0 # ContextMenu > R Ctrl
)
$ByteCount = 2 * $SimplePairs.Length + $ExtendedPairs.Length + 16
$Remap = New-Object -TypeName byte[] -ArgumentList $ByteCount
$Remap[8] = $SimplePairs.Length/2 + $ExtendedPairs.Length/4 + 1
For ($i = 0 ; $i -lt $SimplePairs.Length ; $i += 2) {
   $Remap[$i * 2 + 12] = $SimplePairs[$i]
   $Remap[$i * 2 + 14] = $SimplePairs[$i + 1]
}
For ($i = 0 ; $i -lt $ExtendedPairs.Length ; $i += 4) {
   $Offset = $SimplePairs.Length * 2
   $Remap[$i + 12 + $Offset] = $ExtendedPairs[$i]
   $Remap[$i + 13 + $Offset] = $ExtendedPairs[$i + 1]
   $Remap[$i + 14 + $Offset] = $ExtendedPairs[$i + 2]
   $Remap[$i + 15 + $Offset] = $ExtendedPairs[$i + 3]
}
$args = @{
Path  = 'HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layout'
Name  = 'ScanCode Map'
Value = $Remap
Force = $True
}
New-ItemProperty @args

基思

答案2

如果你想交换 CTRL 和 CAPS,这个自动热键脚本在 Windows 10 上对我有用(交换左控制键和大写键;更改LCtrlCtrl使两个控制键都变为大写锁定键):

LCtrl::Capslock
Capslock::LCtrl

如果您想添加按下控制键然后按大写锁定键的键盘快捷键,则您的键盘硬件可能会出现问题;您是否尝试过使用其他物理键盘或模拟键盘?

答案3

键盘管理器附带动力玩具有这个功能。

一旦您安装并运行它,它允许您选择一个物理键(通过单击“类型”并实际按下该键)和相应的映射键。

请参阅下面的屏幕截图进行设置Caps LockCtrl

在此处输入图片描述

相关内容