このエントリーをはてなブックマークに追加


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

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


スポンサーリンク

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

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

参考資料

動作確認を行ったWindows

  • Windows 10 ver.1809
    01.png

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

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

  • VBスクリプトを起動することにより、CapLockキーをCtrlにするレジストリ追加処理を行う旨のメッセージを表示し、「はい」を押下すればレジストリに登録されます。
  • すでにレジストリに登録済みの場合は、削除する旨のメッセージを表示し、「はい」を押下すれば設定されていたレジストリが削除されます。
  • 設定変更を有効化するためには、VBスクリプト実行後に再起動が必要です。

実行時のキャプチャ

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

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

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

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

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

VBスクリプト

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

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スクリプトでした。


スポンサーリンク


添付ファイル: file21.png [詳細] file22.png 2件 [詳細] file12.png 1件 [詳細] file11.png 1件 [詳細] fileCapsCtrl.zip 1件 [詳細] file01.png 2件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-06-14 (金) 00:10:41 (3d)