2014年9月6日土曜日

Windows のシェルメニューを並べ替える

エクスプローラーのコンテキストメニューの並び順を入れ換える基礎的な方法です。

デスクトップのメニューの順番を入れ換えた図


デスクトップのシェルメニューを例にします。

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\Shell

Shell メニューは通常レジストリのキーの並び、アルファベット順で表示されます。

Display(画面の解像度)、Gadget(ガジェット)、Personalize(個人設定)

キーの名前を変えれば、順番もそれに従って入れ換えることができますが、変更できない状況も多くあります。今回のデスクトップのメニューも、所有権を TrustedInstaller が握っていてキー名は変更できません。

メニューの並べ替えは、レジストリの編集で意外に簡単にできます。

Shell キーの 既定 を開きます。

Personalize にすると個人設定が優先され、一番上になります。
Personalize 以外は、通常のキーの名前のアルファベット順です。

GadgetPersonalize の後にコンマまたはスペースで区切って記述すると個人設定、ガジェット、画面の解像度の順になります。

open ,edit ,printといったシェルキーも同じように扱えます。
既定のデータを空にして元に戻すには、(既定) を右クリックして、メニューから削除します。

この方法は、既定の動作(ダブルクリックしたときに開く)の変更にも使えます。

反面、意図せず既定の動作になってしまうことがあります。
それを避けるには、Personalize などのキーに NeverDefault(文字列値)を追加します。 そうすることで文字通り、決して既定の動作にはならなくなりますNeverDefault を使った例

今回の、Display などの初めからある Shell のサブキーは、TrustedInstaller で守られていますので、アクセス許可を変更しないと書き込めません。こういう場合は、HKEY_CURRENT_USERに同じ項目を作成すると、楽に編集できます

コマンドのキーに値を追加可能なら、"Position"="Top" | "Bottom" で位置を指定することもできます。