web-dev-qa-db-ja.com

Windows10でCTRL-CAPSを交換する

再マップすることができました Ctrl-Caps 以前のバージョンのWindows(XPおよび7)では、 this チュートリアルを使用します。おそらく scancodes はWindows10では異なります。よくわかりません。理由が何であれ、この方法は機能しなくなりました。

だから誰もが再マップする方法を知っていますか Ctrl-Caps Windows 10では?

1
KJ O

CTRLとCAPSを交換したい場合、この AutoHotKey スクリプトはWindows 10で機能します(左のコントロールとキャップを交換します。LCtrlCtrlに変更して、両方のコントロールを作成しますキーはCapsLockです):

LCtrl::Capslock
Capslock::LCtrl

Controlキーを押してからCapsLockキーを押すためのキーボードショートカットを追加する場合は、キーボードハードウェアに問題が発生している可能性があります。別の物理キーボード、またはシミュレートされたキーボードで試してみましたか?

1
charliegreen

動作するはずです。 Powershellスクリプトを使用してさまざまな再マップを実行しました(管理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

キース

0
Keith Miller