Windows 8 の[Windows]+[X]メニューをカスタマイズする

執筆日時:

基本的な仕組み

f:id:daruyanagi:20121110124222p:plain

[Windows]+[X]キーで利用できる Windows 8 の管理メニューの構成は、

%LocalAppData%\Microsoft\Windows\WinX

に保存されている。

f:id:daruyanagi:20121110124004p:plain

単にフォルダ分けして、ショートカットファイルが収められているだけなので、簡単にカスタマイズできる……ように見える(後述)。

f:id:daruyanagi:20121110124112p:plain

ショートカットファイルをフォルダ分けしておくと、メニューが表示されるときにスプリッタ―で分割されるので、多少見やすくなる。「Group*」という命名規則に従う必要は必ずしもないようだが、もしかしたら表示順序などには関係するのかもしれない。従っておいたほうが無難だと思う。

寄り道

ここで少し気になるのは、コマンドプロンプトのショートカットファイルが2種類あることだろう。この違いは管理者権限の有無だ。

f:id:daruyanagi:20121110124601p:plain

これはショートカットファイルの[詳細設定]で変更できる。ちょっと階層が深い……。

メニュー項目をカスタマイズしてみる

f:id:daruyanagi:20121110124905p:plain

とりあえずデスクトップに転がっていたショートカットファイルを「新しいフォルダー」に突っ込んでみた。

f:id:daruyanagi:20121110124943p:plain

これだけだと何も起こらないので、エクスプローラーを再起動してみる。

f:id:daruyanagi:20121110123900p:plain

すると、スプリッタ―だけが追加された。メニュー項目は追加されない。

The entries on the menu are driven by shortcut (.lnk) files present in each Group folder located at %LocalAppData%\Microsoft\Windows\WinX. But you can’t manipulate the shortcuts within or add new ones. That’s because at first invocation (e.g. a fresh boot), the menu scans for and only adds approved shortcuts.

Windows 8 Secrets: The WinX Menu and its hashing algorithm Within Windows

どうやら管理メニューが最初に呼び出されるときに、ショートカットファイルをスキャンして“承認された”ものであるかどうかチェックが入るようだ。

“承認された”ショートカットファイルを作成するには、

  • The link’s target application path/file (e.g. C:\Games\Minecraft.exe)
  • The link’s target application arguments (e.g. –windowed)

これらのハッシュをとって、ショートカットファイルの特定のデータチャンクへ埋め込まなければならない。

ショートカットファイルの構造って結構メンドイのな……。うはぁ、めんどくさい!

まとめ

“WinX”フォルダーを編集すれば、[Windows]+[X]メニューはカスタマイズできる。ただし、新たにショートカットファイルを登録する場合は、ハッシュを埋め込む必要がある。これを簡単なツールが、

で公開されている。

ショートカットファイルの移動や削除だけならば、比較的簡単に行える。

また、エンドユーザー向けにはとあるロシア人が作ってくれたわかりやすいツールが用意されている。

あと、このメニューはユーザーがカスタマイズして利用することがあまり想定されていないようだ。多少悲しいことがあっても、泣いちゃいけない。