Windows 11の右クリックメニュー事情
公開日:
カテゴリ: Windows
Windows 11ではエクスプローラの右クリックメニューが一新されたので、どのようにしてカスタマイズ(整理)できるか調べてみました。
ご注意
本記事では、手動でレジストリの操作を行うため、誤った操作にはくれぐれもご注意ください。
アプリによるメニュー項目
Windows 11の新しい右クリックメニューの中で「プロパティ」より下、「その他のオプションを確認」より上の項目群です。ここには主に手動でインストールしたアプリのメニューが追加されます。
新しい右クリックメニューの項目はすべてCLSID(GUID)を持ったシェル拡張で、DLLを呼び出してメニューを作成するタイプのものです。従来の右クリックメニューでも一部では使用されていましたが、新しい右クリックメニューに表示するには、加えてMSIXパッケージとしてインストールする必要があるようです。
ちなみに
MSIXやMSIXバンドル以外のインストーラを使うアプリの場合、あらかじめインストーラ内に格納しておいたMSIXパッケージをインストール時に実行して、別途インストールしているようです。
この際のMSIXパッケージにはアプリ本体は入れておらず、マニフェスト・アイコン・署名のみが入っているようです(Sparse Package)。
インストールしたアプリのCLSIDを確認するには、以下のレジストリキーを調べます。
# 全ユーザ(特権必要)
HKLM\SOFTWARE\Classes\PackagedCom
# 現在のユーザ(特権不要)
HKCU\SOFTWARE\Classes\PackagedCom
このキー内のPackage
キーにはアプリパッケージごと、ClassIndex
キーにはCLSIDが羅列されているので、お好みの方から対象のCLSIDを割り出します。Package
キーはアプリパッケージ名\Class
にCLSIDのキーがあります。ClassIndex
キーは、全アプリのCLSIDのキー内にアプリパッケージ名のキーがあります。
あとはこのCLSIDをシェル拡張からブロックすれば右クリックメニューから削除できます。変更はリアルタイムに反映されます(エクスプローラの再起動は必要ありません)。
シェル拡張のブロックは、以下のキー(無ければ作成する)にCLSIDの名前の文字列値を登録することでできます(値は何でも(空でも)OKです)。CLSIDの前後についている中括弧ごと使用します({}
は外してはいけません)。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked
※HKCUキーに追加してもブロックできるかは確認していません
Windows標準のメニュー項目
Windows標準のメニュー項目は上記のような制約は特に無いようで、従来の右クリックメニューの整理と同じ方法で制御できます。
Shellを使用するもの
全称、拡張子、ファイル種別、ファイルグループ、フォルダ種類、関連付けられたアプリのそれぞれのキーを開き、Shell
キー内の該当項目キーにProgrammaticAccessOnly
の空の文字列値を追加します。
# 全称
HKCU\SOFTWARE\Classes\*
HKLM\SOFTWARE\Classes\*
# 拡張子ごと
HKCU\SOFTWARE\Classes\.拡張子
HKLM\SOFTWARE\Classes\.拡張子
HKLM\SOFTWARE\Classes\SystemFileAssociations\.拡張子
# ファイル種別ごと
HKCU\SOFTWARE\Classes\ファイル種類(大抵の場合は拡張子+"file")
HKLM\SOFTWARE\Classes\ファイル種類(大抵の場合は拡張子+"file")
# ファイルグループごと(audio/document/image/text/video)
HKLM\SOFTWARE\Classes\SystemFileAssociations\グループ名
# フォルダ種類ごと(audio/image/video)
HKLM\SOFTWARE\Classes\SystemFileAssociations\Directory.フォルダ種類
# 関連付けられたアプリごと(キー名の構成はアプリによって異なる)
HKCU\SOFTWARE\Classes\アプリの識別子.ファイル種類
HKLM\SOFTWARE\Classes\アプリの識別子.ファイル種類
CLSIDを使用するもの
2通りの方法があります。
ShellExから削除
「Shellを使用するもの」と同様に、全称、拡張子、ファイル種別、ファイルグループ、フォルダ種類、関連付けられたアプリのそれぞれのキーを開き、shellex\ContextMenuHandlers
キー内の該当キーを削除します。
Shell
キーと異なりProgrammaticAccessOnly
は効かないので、この方法ではキーを削除するほかありません。実行前の状態に戻せるようにバックアップを取っておきましょう。
CLSIDをまとめてブロック
アプリによるメニュー項目の削除と同様、以下のキー(無ければ作成する)にCLSIDの名前の文字列値を登録することでできます(値は何でも(空でも)OKです)。CLSIDの前後についている中括弧ごと使用します({}
は外してはいけません)。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked
アプリによるメニュー項目と異なり、変更後はエクスプローラの再起動が必要です。なお一部の項目はブロックすると新しい右クリックメニュー自体が表示されなくなることがあるのでご注意ください。
CLSIDを自力で探すのは骨ですが、以下いずれかの方法でおおよそ割り出せそうです。
方法1: CommandStoreを探す
様々な拡張子やファイル種別で使うコマンドは、CommandStoreに登録されている場合があります。以下のキーから該当の項目を探します。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell
該当項目のキー内のExplorerCommandHandler
もしくはCommandStateHandler
がCLSIDです。正確にはCommandStateHandler
は状態チェック用のCLSIDのようですが。
方法2: CLSIDキーを検索する
以下のキー内にあるContextMenuOptIn
を検索します。
HKLM\Software\Classes\CLSID
このContextMenuOptIn
が含まれているキーがCLSIDです。キーの既定の値を見ると、おおよそどのような項目かが見えてきます。項目によってはキー内にImplementsVerbs
が含まれていることがあり、この値は方法1のCommandStore
のキーに対応するようです。
おわり
Windows 11の新しい右クリックメニューはだいぶ整理されてスッキリしましたが、それでもいらない項目からの呪縛からは解き放たれそうにないですね。あとはエクスプローラ共々軽くなってもらえれば。。。
カテゴリ: Windows