[Windows] CapsLockとかをAutoHotKeyで置き換える

投稿者: | 2024年2月11日

CapsLockいらねえ!!!!!!!

目次


パターン1: レジストリで置き換える

単純にCapsLockを無効にするだけなら以下のキーをレジストリに突っ込めば良い。
戻すにはキーを削除するだけ。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,00,00,3a,00,00,00,00,00

キーの意味は解説記事とか読んでください。別キーへの置き換えも可能。

[CapsLock]キーって必要? 誤入力が多いので対処方法を考えてみました - 高橋忍のにゃんともWindows - 窓の杜
Win7でレジストリをいじってキー配列を変える - "Simple" is "Best"

パターン2: PowerToysで置き換える

恐らくこれが一番簡単。
PowerToysは当然みんな入れているはずなので(強い圧)Keyboard Managerでキーの再マップをすればよい。
詳しい話は後述するがLock系も問題なく置き換えできるのかは使ってないので知らない。MS製なので大丈夫とは思うが……


パターン3: AutoHotKeyで置き換える

お待たせしました、ここから本題です。

まずCapsLockを別のキーに置き換える

ナントカLock系のトグル切り替えキーを置き換えるとキーが押しっぱなしになってしまう場合があるため、一旦CapsLockを使われていない非トグルのキーに置き換えたうえで改めてAutoHotKeyで置き換えるという手順を取る。
そこで現代のキーボード上には存在していないが存在しているF13~F24とかいう一切使われていないキーを活用し、ChangeKeyを用いてCapsLockをF13あたりに置き換える……が、このソフトがやってることはパターン1と同じなのでレジストリに直接書いてもいい。
CapsLockをF13に置き換えるキーの値は以下の通り。

"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,64,00,3a,00,00,00,00,00

細かい話は参考記事を参照してほしい。

快適キーボード操作のためのキーカスタマイズ 〜AutoHotKeyのキー押しっぱなし問題とScrollLockの非推奨~ | さくらのナレッジ

AutoHotKeyでF13を置き換える

ここでやっとAutoHotKeyが登場する。置き換えるだけなら1行だけ。

F13::LControl

これでF13(ということになっているCapsLock)が左Ctrlになった。

ついでに色々置き換える

F1なんでヘルプとかいうのに割り当てられてんの?いらないのでSteamの起動キーにしよう。
ただRustとかOVERWATCHとかBLUE PROTOCOLとか普通にF1キー使うのでその辺りは除外したい。
というわけでこんな感じ。

GroupAdd, ExcludeGroup, ahk_exe Overwatch.exe
GroupAdd, ExcludeGroup, ahk_exe BLUEPROTOCOL-Win64-Shipping.exe
GroupAdd, ExcludeGroup, ahk_exe RustClient.exe

#IfWinNotActive, ahk_group ExcludeGroup
    F1::
        Run, "C:\Program Files (x86)\Steam\Steam.exe"
        Return
#IfWinNotActive

グループ「ExcludeGroup」を作ってこのグループにあるexeが非アクティブな時だけF1をSteam起動に置き換えている。GroupAddで追加すれば除外対象を増やせる。

追加で右Winをアプリケーションキーに置き換える。
あとSpaceEngineersを起動してる時だけcと左Ctrlを入れ替えたい。操作性がカスなので……

RWin::AppsKey

#IfWinActive,ahk_exe SpaceEngineers.exe
    c::LControl
    LControl::c
#IfWinActive

そして完成したスクリプト

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

GroupAdd, ExcludeGroup, ahk_exe Overwatch.exe
GroupAdd, ExcludeGroup, ahk_exe BLUEPROTOCOL-Win64-Shipping.exe
GroupAdd, ExcludeGroup, ahk_exe RustClient.exe

#IfWinNotActive, ahk_group ExcludeGroup
	F1::
        Run, "C:\Program Files (x86)\Steam\Steam.exe"
        Return
#IfWinNotActive

F13::LControl

RWin::AppsKey

#IfWinActive,ahk_exe SpaceEngineers.exe
    c::LControl
    LControl::c
#IfWinActive

自動起動に登録

.ahkをAutoHotKeyに関連付けてscript.ahkをスタートアップに登録すればWindows起動時に勝手に上がってくる。これでCapsLockとついでにF1を活用できるようになった。
文明に感謝。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です