CapLockキーをCtrlにするレジストリ設定VBスクリプト †CapsLockキーは使わないので、Ctrlキーとして動作したらいいのに。 スクリプトを使用する前に †本資料のVBスクリプトはレジストリを追加・削除を行います。 参考資料 †
動作確認を行ったWindows †
CapsLockキーをCtrlにするVBスクリプト †CapsLockキーをCtrlに変更するために、レジストリに設定を追加するスクリプトになります。
実行時のキャプチャ †以下、実行時のキャプチャになります。 CapLockキーをCtrlにするレジストリ設定を登録する †
CapsLockキーをもとに戻す(レジストリを削除する) †
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スクリプトでした。 |