CapLockキーをCtrlにするレジストリ設定VBスクリプト

CapsLockキーは使わないので、Ctrlキーとして動作したらいいのに。
CapsLockキーをCtrlにするにはレジストリに追加すればいいのはわかっているけど面倒だな。
などと思っている方々、CapLockキーをCtrlにするレジストリ設定VBスクリプトを紹介します。


スクリプトを使用する前に

本資料のVBスクリプトはレジストリを追加・削除を行います。
本資料やVBスクリプトにより直接的および間接的障害や損失が生じても一切責任を負いません。
機器(キーボード)によっては、レジストリ登録しても変わらない場合があります。

参考資料

動作確認を行ったWindows

CapsLockキーをCtrlにするVBスクリプト

CapsLockキーをCtrlに変更するために、レジストリに設定を追加するスクリプトになります。
本スクリプトは以下のような動作になります。

実行時のキャプチャ

以下、実行時のキャプチャになります。

CapLockキーをCtrlにするレジストリ設定を登録する

  1. VBスクリプトを起動します。(ダブルクリックします。)
  2. 以下のメッセージが表示されるので、レジストリに設定を登録する場合は「はい」を中断する場合は「いいえ」を押してください。
    11.png
     
  3. 以下のメッセージがでて終了です。
    12.png
     
  4. 再起動すればCapsLockキーがCtrlになっているはずです。

CapsLockキーをもとに戻す(レジストリを削除する)

  1. 以下のメッセージはすでにレジストリ登録済みの場合に表示されます。
    「はい」を押せばレジストリが削除され、「いいえ」を押せば中断します。
    21.png
     
  2. 以下のメッセージがでて終了です。
    22.png

VBスクリプト

CapsLockキーをCtrlキーにするVBスクリプトは以下の通りです。

fileCapsCtrl.zip

CapsCtrl.vbs

' CapsLock -> Ctrl or CapsLock -> CapsLock

' 本スクリプトを管理者として実行する
Set oWsh = Wscript.CreateObject("Shell.Application")
If Wscript.Arguments.Count = 0 Then
    oWsh.ShellExecute "wscript.exe", WScript.ScriptFullName & " runas", "", "runas", 1
    WScript.Quit
End If

'以降、管理者として実行
Set oWshShell = WScript.CreateObject("WScript.Shell")
Const strRegkey = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map"
Const HKEY_LOCAL_MACHINE = &H80000002 
Const strComputer = "." 
Const strKeyPath = "SYSTEM\CurrentControlSet\Control\Keyboard Layout" 
Const strValueName = "Scancode Map" 
arrValues = Array(0,0,0,0,0,0,0,0,2,0,0,0,29,0,58,0,0,0,0,0)

' 既に登録されているかをチェックし処理分岐
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") 
objRegistry.GetBinaryValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,bValue
If IsNull(bValue) Then 
    b = MsgBox("CapLockをCtrlとして設定しますか?(CtrlはCtrlのままです。)", vbYesNo + vbQuestion)
    If b = vbYes Then
        ret = objRegistry.SetBinaryValue(HKEY_LOCAL_MACHINE, strKeyPath, strValueName, arrValues) 
        MsgBox "レジストリ設定を追加しました。再起動することにより反映されます。"
    End If
Else 
    b = MsgBox("既に設定が存在します。CapsLockを本来の動作に戻しますか?", vbYesNo + vbQuestion)
    If b = vbYes Then
        '設定されているレジストリの削除
        oWshShell.RegDelete(strRegkey)
        MsgBox "該当するレジストリを削除しました。再起動することにより反映されます。"
    End If
End If

以上、CapLockキーをCtrlにするレジストリ設定VBスクリプトでした。



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS