雑記帳

整理しない情報集

右クリックメニューから「送る」と「ライブラリに追加」を削除する

Windows10 1809のアップデート適用後から、右クリックメニューから「送る」と「ライブラリに追加」の項目がレジストリのキーを削除しても自動的に復活するようになりました。仕様変更なのかバグなのかは分かりませんが、なんとかして右クリックメニューから削除する方法を紹介します。

手順

「送る」の削除

  1. レジストリエディターを開き、以下のキーを開きます。
    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects
  2. このキーの中にNoSendToという名前の文字列値(REG_SZ)を作成します。

「ライブラリに追加」の削除

  1. レジストリエディターを開き、以下のキーを開きます。
    HKEY_CURRENT_USER\Software\Classes\Folder
  2. このキーの中にshellexというキーを作成します(すでにある場合は飛ばしてください)。
  3. 作成したshellexキーの中にContextMenuHandlersというキーを作成します。
  4. 作成したContextMenuHandlersキーの中にLibrary Locationというキーを作成します。
  5. 作成したLibrary Locationキーの中にある(既定)の値をダブルクリックして編集画面を開き、そのままOKを押します。レジストリエディターの画面で、テータの値が(値の設定なし)から何も表示されなくなればOKです。

仕組み

「送る」の削除について

「送る」メニューはクラス情報のキーにNoSendToを指定することで、送るメニューを非表示にすることができます。「送る」メニューはAllFilesystemObjectsという、ファイルシステム全般に相当するクラス情報のキーのShellEx内で登録されているため、ここにNoSendToを指定することによって「送る」メニューを非表示にしています。

「ライブラリに追加」の削除について

「ライブラリに追加」は「送る」メニューと異なり、No***といった形で非表示に設定することが出来ません(もしかしたら存在するかもしれませんが、筆者は見つけることが出来ませんでした)。

さて、HKEY_CLASSES_ROOTの中身はHKEY_LOCAL_MACHINE\SOFTWARE\ClassesHKEY_CURRENT_USER\Software\Classesの複合で出来ています。このとき同名のキーが存在する場合はHKEY_CURRENT_USERの方が優先されます。

「ライブラリに追加」メニューはHKEY_LOCAL_MACHINEに存在するため、HKEY_CURRENT_USERに同名のキーを作成し空の内容で上書きすることによってメニューを非表示にしています。

余談

ShellExのメニューはHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\BlockedにCLSIDを追加すると無効化出来るはずなのですが、「送る」と「ライブラリに追加」については効果がありませんでした…。