ファイルとフォルダーを一瞬で隠す機能をサブメニューへまとめます。
前回作成した右クリックのシステム属性を付ける機能をカスケード表示にしてすっきりさせます。
新規に Shell メニューの入れもの、画像の表示モードのところを作成するだけです。
ファイルとフォルダーを隠すメニューを 1 つにまとめる方法
-
レジストリキーを作成します。HideSelected は任意の文字列です。
HKCU\SOFTWARE\Classes\AllFilesystemObjects\shell\HideSelected
-
SubCommands (文字列値)を作成。
-
HideSelected/shell キーを作成、前回の 2 つの シェルメニュー hide と show を追加します。
詳細は RegFile を参照してください。
[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\HideSelected]
"MUIVerb"="@shell32.dll,-38214"
"Icon"="imageres.dll,-5314"
"SubCommands"=""
"Extended"=""
"SeparatorBefore"=""
[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\HideSelected\shell\hide]
"MUIVerb"="@shell32.dll,-37574"
"Icon"="shell32.dll,-261"
[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\HideSelected\shell\hide\command]
@="attrib +s +h \"%1\""
[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\HideSelected\shell\show]
"Icon"="shell32.dll,-16803"
"MUIVerb"="@shell32.dll,-31335"
[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\HideSelected\shell\show\command]
@="attrib -s -h \"%1\""
完成図
解説
SubCommands は面白い性質を持っていて、値だけ書き込むと今回のようなカスケードメニューになり、CommandStore/shell 以下のキー名をデータに持つと該当する機能を呼び出します。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore
SubCommands で CommandStore を利用すると shell コマンドは無効になるため併用はできません。
注意点として、SubCommands から CommandStore の機能を呼び出しても組み合わせにより動作しないことが結構な頻度で発生します。
MUIVerb でメニューに表示する文字を設定しています。
@shell32.dll,-38214 は 表示モード
Icon はエクスプローラーのリボンと同じものを指定しています。
imageres.dll,-5314
あとがき
実は、こちらを先に作ったのですが、内容が煩雑になりすぎたため分割しました。詳細は絶対に見られたくないファイルとフォルダーを一瞬で隠すを参照してください。
また、保護されたオペレーティング システム ファイルを表示しない (推奨)をオンオフする機能もコンテキストメニューに組み込むよう検討してみました。
reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v ShowSuperHidden /t REG_DWORD /d 1 /f
レジストリはうまく制御できるのですが、途中で F5 (更新)が必要なのと、フォルダー オプションにバグらしき挙動がみられるため保留中です。
うまくいったら公開したいと考えています。