4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows エクスプローラをレジストリでカスタマイズする

Last updated at Posted at 2024-02-17

はじめに

Windowsエクスプローラ関連のレジストリ覚書です。レジストリのことがよく分かっていない方は実施しないでください。

コンテキストメニューのカスタマイズ

ASCII.jp:エクスプローラーの右クリックメニューをカスタマイズする (1/2)

対象 レジストリキー
特定のファイル(拡張子) HKEY_CLASSES_ROOT\SystemFileAssociations\拡張子
任意のファイル HKEY_CLASSES_ROOT\*
全ファイル/フォルダ HKEY_CLASSES_ROOT\AllFilesystemObjects
フォルダ HKEY_CLASSES_ROOT\Folder(特殊フォルダを含む)
HKEY_CLASSES_ROOT\Directory(特殊フォルダは含まない)
ドライブ HKEY_CLASSES_ROOT\Drive
デスクトップの背景 HKEY_CLASSES_ROOT\DesktopBackground
エクスプローラの余白 HKEY_CLASSES_ROOT\Directory\Background

設定方法について
右クリックメニューにアイテムを追加する - Windows 10

設定方法の詳細について
Windows レジストリ 解剖記: HKEY_CLASSES_ROOT - Programming Field

コンテキストメニューの階層化

SubCommandsを使用

ショートカット メニュー ハンドラーの作成 - Win32 apps | Microsoft Learn

階層化の例
submenu.png

  • MUIVerbにサブメニュー名を指定します。
  • SubCommandsにサブメニューの中の項目を;で区切って指定します。
  • サブメニューの中の項目はCommandStore(場所は下記参照)内に作成します。
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\CascadeTest]
"MUIVerb"="サブメニュー"
"SubCommands"="submenu1;submenu2"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\submenu1]
@="メモ帳で開く"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\submenu1\command]
@="notepad.exe \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\submenu2]
@="ペイントで開く"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\submenu2\command]
@="mspaint.exe \"%1\""

ExtendedSubCommandsKeyを使用

右クリックに***で実行を作る

階層化の例
submenuext.png

  • MUIVerbにサブメニュー名を指定します。
  • ExtendedSubCommandsKeyにサブメニュー項目を指定します。
  • サブメニュー項目を指定する場合はHKEY_CLASSES_ROOT\からの相対パスで指定します。例えばサブメニュー項目がHKEY_CLASSES_ROOT\submenu1にある場合はsubmenu1とします。
  • 指定したパスのshell配下のキーがサブメニューコマンドになります。例の場合はHKEY_CLASSES_ROOT\submenu1\shell\***がサブメニューコマンドになります。
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\CascadeTest]
"MUIVerb"="親メニュー"
"ExtendedSubCommandsKey"="submenu1"

[HKEY_CLASSES_ROOT\submenu1]

[HKEY_CLASSES_ROOT\submenu1\shell]

[HKEY_CLASSES_ROOT\submenu1\shell\notepad]
@="メモ帳"
"Icon"="\"C:\\Windows\\System32\\notepad.exe\""

[HKEY_CLASSES_ROOT\submenu1\shell\notepad\command]
@="notepad.exe \"%1\""

[HKEY_CLASSES_ROOT\submenu1\shell\paint]
@="ペイントブラシ"
"Icon"="mspaint.exe"

[HKEY_CLASSES_ROOT\submenu1\shell\paint\command]
@="mspaint.exe \"%1\""

[HKEY_CLASSES_ROOT\submenu1\shell\submenu]
"MUIVerb"="サブメニュー"
"ExtendedSubCommandsKey"="submenu2"
"CommandFlags"=dword:00000020

[HKEY_CLASSES_ROOT\submenu2]

[HKEY_CLASSES_ROOT\submenu2\shell]

[HKEY_CLASSES_ROOT\submenu2\shell\cmd]
@="コマンドプロンプト"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\submenu2\shell\cmd\command]
@="cmd.exe /s /k pushd \"%W\""

以下でも同じことができます。同じ階層にサブメニュー項目を配置しているので、こちらのほうがシンプルでよいかもしれません。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\CascadeTest]
"MUIVerb"="親メニュー"
"ExtendedSubCommandsKey"="*\\shell\\CascadeTest\\submenu1"

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu1]

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu1\shell]

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu1\shell\notepad]
@="メモ帳"
"Icon"="\"C:\\Windows\\System32\\notepad.exe\""

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu1\shell\notepad\command]
@="notepad.exe \"%1\""

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu1\shell\paint]
@="ペイントブラシ"
"Icon"="mspaint.exe"

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu1\shell\paint\command]
@="mspaint.exe \"%1\""

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu1\shell\submenu]
"MUIVerb"="サブメニュー"
"ExtendedSubCommandsKey"="*\\shell\\CascadeTest\\submenu2"
"CommandFlags"=dword:00000020

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu2]

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu2\shell]

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu2\shell\cmd]
@="コマンドプロンプト"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\*\shell\CascadeTest\submenu2\shell\cmd\command]
@="cmd.exe /s /k pushd \"%W\""

ソフトウェアを使用(参考)

pathcopyextensionの詳細情報 : Vector ソフトを探す!

特定の拡張子のみにメニューを追加したい場合はソフトを使用するほうが楽です。
submenusoft.png

  • setting.xmlで拡張子ごとのメニューを設定します。以下は設定例です。
<?xml version="1.0" encoding="utf-8"?>
<menus>
    <copypath>
        <enable>true</enable>
        <doublequotationmark>false</doublequotationmark>
        <lastNewLine>false</lastNewLine>
    </copypath>
    <extmenu ext=".txt">
        <menu name=".txt用メニュー">
            <button>
                <name>メモ帳で開く</name>
                <command>notepad.exe</command>
                <arg>__file__</arg>
                <each>true</each>
            </button>
	        <menu name="サブメニュー1">
	            <button>
	                <name>メモ帳で開く</name>
	                <command>notepad.exe</command>
	                <arg>__file__</arg>
	                <each>true</each>
	            </button>
		        <menu name="サブメニュー2">
		            <button>
		                <name>メモ帳で開く</name>
		                <command>notepad.exe</command>
		                <arg>__file__</arg>
		                <each>false</each>
		            </button>
		        </menu>
	        </menu>
        </menu>
    </extmenu>
    <extmenu ext=".csv">
        <button>
            <name>メモ帳で開く</name>
            <command>notepad.exe</command>
            <arg>__file__</arg>
            <each>true</each>
        </button>
    </extmenu>
</menus>

コンテキストメニューにWindows標準メニューを追加する

以下のキーの配下にWindowsの標準メニューが存在します。例えばフォルダの新規作成であればWindows.newfolderが該当します。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell

例)「新しいフォルダ」を「エクスプローラの余白」を右クリックしたときに出てくるコンテキストメニューに追加したい場合は、

  1. レジストリエディタで対象のキー(今回はWindows.newfolder)を開きます。
  2. Windows.newfolderを右クリックして「エクスポート」を選択します。
  3. 適当に名前を付けて保存します。
  4. 保存したファイルを開いて[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell[HKEY_CLASSES_ROOT\Directory\Background\shellに置換します。
  5. 保存したファイルを実行してレジストリに追加します。
キー 項目名
Windows.layout レイアウト
Windows.previewpane 詳細ウィンドウ
Windows.readingpane プレビュー ウィンドウ
Windows.navpane ナビゲーション ウィンドウ
Windows.ShowFileExtensions ファイル名拡張子
Windows.ShowHiddenFiles 隠しファイル
Windows.selectall すべて選択
Windows.newfolder 新しいフォルダ
Windows.PinToHome クイック アクセスにピン留めする
Windows.SizeAllColumns すべての列のサイズを自動的に変更する

カレントディレクトリをPowerShellやコマンドプロンプトで開く

カレントディレクトリをPowerShellやコマンドプロンプトで開く #Windows - Qiita

ドライブレターの変更

システム/ブート ドライブ文字を復元する - Windows Server | Microsoft Learn

「ディスクの管理」から変更できない場合は、HKEY_LOCAL_MACHINE\SYSTEM\MountedDevicesを変更します。C:とD:を入れ替える場合は

  1. \DosDevices\C:\DosDevices\Z:(未使用ドライブレターなら何でも可)に変更します。
  2. \DosDevices\D:\DosDevices\C:に変更します。
  3. \DosDevices\Z:\DosDevices\D:に変更します。
  4. Windowsを再起動します。

ドライブの非表示

マイコンピュータのドライブを非表示にする | 日経クロステック(xTECH)

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ExplorerNoDrivesというDWORD値を作成し設定します。

例)A,Fドライブを非表示にしたい場合は100001(2)。10進数に直して「33」を入力

隠したいドライブを1とする
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1

ユーザーフォルダの非表示

エクスプローラーの「PC」に表示される、不要なユーザーフォルダを消す方法

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\配下の以下のキーのThisPCPolicyの値をShowからHideに変更します。上記URLに一発で変更できるregファイルがあります。

対象 レジストリキー
ピクチャ {0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag
ビデオ {35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag
ダウンロード {7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag
ミュージック {a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag
ドキュメント {f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag
デスクトップ {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag
3D オブジェクト {31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag

アプリケーション実行可能ファイルの登録

アプリケーションの登録 - Win32 apps | Microsoft Learn

登録するとパスを通すのと同じような状態になり、「アドレスバー」や「ファイル名を指定して実行」からファイル名のみで開くことができます。

対象 レジストリキー
実行ファイル(file.exe) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\file.exe(全ユーザー)
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\file.exe(ユーザー毎)
(既定)に「file.exeへのフルパス」を設定

レジストリファイル(.reg)

レジストリの特定のキーと値を一部/全部を削除する方法 - Windows 10

レジストリ登録時に日本語が文字化けしないようにUTF-16 LEで保存します。

登録する場合の例

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\memo]
@="メモ帳で開く"

[HKEY_CLASSES_ROOT\*\shell\memo\command]
@="notepad \"%1\""

値を削除する場合は値に「-」を指定します。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\memo\command]
@=-

キーを削除する場合はキーの先頭に「-」を追加します。

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\memo]

regコマンド

【Windows 10/11】regコマンドを使ってコマンドプロンプトからレジストリを操作する:Tech TIPS - @IT

使用例 コマンド
キーや値を追加 reg add <キー名> /v <値の名前> /t <値の種類> /d <値のデータ>
確認なしでキーを削除 reg delete <キー名> /f

詳細はreg コマンドを参照願います。

その他参考

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?