2023年8月1日火曜日

簡単操作!コンテキストメニューで移動とコピーを一括管理【失敗談付き】 📠 Windows10

ファイルとフォルダーのコンテキストメニューに移動コピーを一括管理できる機能を付けます。

  1. コピーメニュー

    1. レジストリキーを作成。

      HKCU\SOFTWARE\Classes\AllFilesystemObjects\shell\CopyToMenu

    2. ExplorerCommandHandler(文字列値)を作成、データを{3852C2E2-4A16-4b11-8E71-F8904C37EC3D}にします。

    3. Icon(文字列値)を作成して、データをimageres.dll,-5334にします。

  2. 移動メニュー

    1. レジストリキーを作成。

      HKCU\SOFTWARE\Classes\AllFilesystemObjects\shell\MoveToMenu

    2. ExplorerCommandHandler(文字列値)を作成、データを{F60C3E02-214A-462b-9B07-56EA38545A13}にします。

    3. Icon(文字列値)を作成して、データをimageres.dll,-5303にします。

  3. AllFilesystemObjects キーへ SeparatorBeforeAndAfter(文字列値)を追加して完成です。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects]
"SeparatorBeforeAndAfter"=""

[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\CopyToMenu]
"ExplorerCommandHandler"="{3852C2E2-4A16-4b11-8E71-F8904C37EC3D}"
"Icon"="imageres.dll,-5304"

[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\MoveToMenu]
"ExplorerCommandHandler"="{F60C3E02-214A-462b-9B07-56EA38545A13}"
"Icon"="imageres.dll,-5303"

解説

AllFilesystemObjects はファイルとフォルダーです。

💡 コンテキストメニューに使われるレジストリ一覧

SeparatorBeforeAndAfterAllFilesystemObjects 全体の上下にセパレーターを挿入します。

同じセパレーターでも SeparatorAfterSeparatorBefore は、CopyToMenuMoveToMenu のシェルメニュー個々に設置できます。

メニューを入れ替えるには、shell の (既定)にMoveToMenuと記述します。コンマで区切ってキー名を記述するとその順番に並びます。

アイコンはエクスプローラーのリボンと同じものを指定しています。

サブコマンドにはできない

それほど出番はないと思われるのでSubCommands でカスケードメニューにまとめたいのですが、これがうまくいきません。

コピーしかメニューが出ない。

CommandStore を利用

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\Windows.organize]
"SubCommands"="Windows.CopyToMenu;Windows.MoveToMenu"

SubCommandsShell コマンドをサブメニュー化

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\organize]
"SubCommands"=""

[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\organize\shell\CopyToMenu]
"ExplorerCommandHandler"="{3852C2E2-4A16-4b11-8E71-F8904C37EC3D}"

[HKEY_CURRENT_USER\SOFTWARE\Classes\AllFilesystemObjects\shell\organize\shell\MoveToMenu]
"ExplorerCommandHandler"="{F60C3E02-214A-462b-9B07-56EA38545A13}"

似た機能の Windows.CopyToBrowser;Windows.MoveToBrowser では支障がないので、次回にその点を詳しく解説します。