こんにちは、阿久津です。今年も残すところ一週間を切りましたが、マヤ文明の長期暦を起因とする人類滅亡説も何事もなく終え、2012年も終えようとしています。政治から経済など各界の出来事を取り上げると枚挙に暇がありません。コンピューター業界においては、Windows 8の登場が最大のイベントでしょう。3年ぶりの新OSは、15年以上にも及んだスタートボタンを廃し、新たに搭載したスタート画面は賛否両論。

旧来のスタートボタンを復活させるClassic Shell(設定項目などを日本語化したClassic Shell Jもあります)を導入する方も多く見られますが、長年親しまれたUI(ユーザーインターフェース)の変更は多大な影響を与えるのは改めて述べるまでもありません。最近ではLinuxのデスクトップ環境であるGNOME(グノーム)のバージョンアップに伴ってUIを刷新。こちらも賛否両論を巻き起こしていました(図01)。

図01 「Classic Shell」をインストールしたWindows 8。スタートボタン/メニューが復活し、Windows 7ライクな操作環境を実現できます

Linuxはディストリビューションに左右されますが、異なるソフトウェアをパッケージとして導入すれば、難なくUIを変更できます。Windows OSとLinuxを単純比較する意味はありませんが、旧UIと新UIを切り替える機能を用意すれば、Windows 8の評価はより高いものになったのではないでしょうか。今後登場する予定のWindows Blue(開発コード名)でどのような変更が加わるか予測できませんが、UIに関する改良は強く望みたいものです。

さて、Windows 8のスタート画面は各アプリケーションをピン留めする領域です。Windowsストアアプリなら電子メールアカウントなどをピン留めできますが、テキストファイルなど各種ファイルをピン留めすることはできません。実行ファイルなどのコンテキストメニューには、<スタートにピン留め>という項目が用意されていますが、同項目が現れるのは実行ファイル(拡張子「.exe」)やショートカットファイル、フォルダーやドライブ、ライブラリやMicrosoft Common Console Document(拡張子「.msc」)に限定されます(図02~03)。

図02 ショートカットファイルのコンテキストメニュー。スタート画面にピン留めする<スタートにピン留め>という項目が現れます

図03 こちらはテキストファイルのコンテキストメニュー。ピン留めを実行する項目は用意されていません

以前、「コンテキストメニューの<スタートにピン留め>を削除する」というチューニングを紹介しましたが、<スタートにピン留め>という項目を実現しているのは、pintostartscreenキーであり、サブキーで呼び出しているクラスID「{470C0EBD-5D73-4d58-9CED-E91E22E23282}」です。このキーをすべてのファイルが参照するHKEY_CLASSES_ROOT\*\shellキーに作成すれば、テキストファイルなどのコンテキストメニューにも同項目を実現できるのではと試したところ、正しく動作しました。2012年最後のチューニングは、すべてのファイルをピン留め可能にする方法を紹介します。

1. 管理者権限でレジストリエディターを起動します。
2. HKEY_CLASSES_ROOT\*\shell\pintostartscreenキーを開きます(ない場合は作成します)。
3. 文字列値「Description」を作成し、値のデータを「@shell32.dll,-51202」に変更します。
4. 文字列値「MUIVerb」を作成し、値のデータを「@shell32.dll,-51201」に変更します。
5. 文字列値「MultiSelectModel」を作成し、値のデータを「Single」に変更します。
6. 文字列値「NeverDefault」を作成します。
7. HKEY_CLASSES_ROOT\*\shell\pintostartscreen\commandキーを開きます(ない場合は作成します)。
8. 文字列値「DelegateExecute」を作成し、値のデータを「{470C0EBD-5D73-4d58-9CED-E91E22E23282}」に変更します。
9. [F5]キーを押してからレジストリエディターを終了します。

これでチューニングが終了しました(図04~24)。

図04 [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図05 レジストリエディターが起動したら、HKEY_CLASSES_ROOT\*\shellまでキーをたどって開きます

図06 shellキーを右クリックし、メニューから<新規>→<キー>とクリックします

図07 キー名を「新しいキー #1」から「pintostartscreen」に変更します

図08 pintostartscreenキーの右ペインを右クリックし、メニューから<新規>→<文字列値>とクリックします

図09 値名を「新しい値 #1」から「Description」に変更します

図10 文字列値「Description」をダブルクリックし、値のデータを「shell32.dll,-51202」に変更して<OK>ボタンをクリックします

図11 続いて右ペインの何もないところを右クリックし、メニューから<新規>→<文字列値>とクリックします

図12 値名を「新しい値 #1」から「MUIVerb」に変更します

図13 文字列値「MUIVerb」をダブルクリックし、値のデータを「@shell32.dll,-51201」に変更して<OK>ボタンをクリックします

図14 再び右ペインの何もないところを右クリックし、メニューから<新規>→<文字列値>とクリックします

図15 値名を「新しい値 #1」から「MultiSelectModel」に変更します

図16 文字列値「MultiSelectModel」をダブルクリックし、値のデータを「Single」に変更して<OK>ボタンをクリックします

図17 再度右ペインの何もないところを右クリックし、メニューから<新規>→<文字列値>とクリックします

図18 値名を「新しい値 #1」から「NeverDefault」に変更します

図19 今度はpintostartscreenキーを右クリックし、メニューから<新規>→<キー>とクリックします

図20 キー名を「新しいキー #1」から「command」に変更します

図21 commandキーの右ペインを右クリックし、メニューから<新規>→<文字列値>とクリックします

図22 値名を「新しい値 #1」から「DelegateExecute」に変更します

図23 文字列値「DelegateExecute」をダブルクリックし、値のデータを「{470C0EBD-5D73-4d58-9CED-E91E22E23282}」に変更して<OK>ボタンをクリックします

図24 操作を終えたら[F5]キーを押して設定内容をシステムに反映させた後、<×>ボタンをクリックしてレジストリエディターを終了させます

それでは結果を確認してみましょう。テキストファイルなどこれまで<スタートにピン留め>が表示されないファイルを右クリックしてください。するとコンテキストメニューには同項目が加わったことを確認できます。そのまま同項目を選択すればスタート画面にピン留めされ、クリックすることで関連付けたアプリケーションで開くことができます(図25~26)。

図25 テキストファイルなどを右クリックしますと、コンテキストメニューに<スタートにピン留め>が加わります

図26 <スタートにピン留め>をクリックしますと、スタート画面に対象となるファイルがピン留めされます

今回はHKEY_CLASSES_ROOT\exefile\shell\pintostartscreenキーの内容を、そのままHKEY_CLASSES_ROOT\*\shellキーにコピーしたものですが、予想どおり動作しました。前回の記事ほどではありませんが、今回の手順も冗長ですので、レジストリファイルを用意しました。

リンクからZIP形式ファイルをダウンロードし、展開後に現れる「Contextmenu_All_PinToStartScreen.reg」をダブルクリックしてください。確認をうながすダイアログが現れたら<はい>→<OK>とボタンをクリックします。なお、本チューニングを無効にする場合は、HKEY_CLASSES_ROOT\*\shell\pintostartscreenキーを削除してください。

それでは、また来年お会いしましょう。

阿久津良和(Cactus