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" で位置を指定することもできます。