こんにちは、阿久津です。今週はメニューバーに対する考察をお届けします。そもそもメニューバーはWindows 2.0の時点で搭載された機能。アプリケーションに対する操作や設定に欠かせない機能となり、現在のWindows OSにも受け継がれています(図01)。
しかし、Windows Vistaに搭載されたエクスプローラでは、ツールバーにある<整理>ボタンと右クリックで表示されるコンテキストメニュー、そしてショートカットキーによる操作により、メニューバーを過去の物としました。それでも下位互換性を重要視するMicrosoftらしく、メニューバーが必要な人向けに[Alt]キーで一時表示させる機能や、<整理>ボタン→<レイアウト>→<メニューバー>とクリックすることで常時表示が有効にする機能を備えています(図02~03)。
このようにエクスプローラにおけるメニューバーは、前面に押し出されない機能となっているため、Windows VistaがはじめてのOSとなる方は、気にされたこともないのでは。ここで今号の表題となる"メニューバーが表示されないトラブル"の登場です。そもそもエクスプローラのメニューバーは、HKEY_CLASSES_ROOT \ CLSID \ {5b4dae26-b807-11d0-9815-00c04fd91972}キーで定義されているクラスIDで実現しています(アプリケーションの場合は、DLLファイルを呼び出しています)。前述のように、エクスプローラが起動した状態で[Alt]キーを押すとメニューが表示されますが、同キーが存在しない場合、どのような操作を行なってもメニューバーは表示されません(図04)。
図04: HKEY_CLASSES_ROOT \ CLSID \ {5b4dae26-b807-11d0-9815-00c04fd91972}キーが存在しませんと、<メニューバー>にチェックを入れてもメニューバーが表示されません |
つまり、スタートメニューもエクスプローラの一部となるため、メニューが表示されなくなるのです。例えばコントロールパネルをリンクからメニュー形式に切り替えていても、メニューが表示されません。特にWindows Vistaでは電源ボタンがメニュー形式になっているため、Shutdown.exeの使用を強いられてしまいます(図05)。
それではこのトラブルに見舞われているユーザー向けに、前述したクラスIDの復元手順をお送りしましょう。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{5b4dae26-b807-11d0-9815-00c04fd91972}]
@="Menu Band"
[HKEY_CLASSES_ROOT\CLSID\{5b4dae26-b807-11d0-9815-00c04fd91972}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,00,00
"ThreadingModel"="Apartment"
「reg.txt」を用意しました。レジストリ情報の入力が面倒な方はこちらをダウンロードし、ファイル名を「MenuBar.reg」に変更してお使いください。
上記の囲みを参考にレジストリファイルを作成し、ファイル名を「"MenuBar.reg"」とダブルコーテーションと拡張子を付け、文字コードをUnicode形式に変更して保存します。次に作成したレジストリファイルをダブルクリックしてシステムに取り込みましょう。レジストリエディタを起動し、正しく取り込まれているか確認します。問題がなければ、レジストリエディタを終了させましょう(図06~11)。
図11: HKEY_CLASSES_ROOT \ CLSID \ {5b4dae26-b807-11d0-9815-00c04fd91972}キーを開き、内容を確認します。問題がなければレジストリエディタを終了しましょう |
これで設定完了です。スタートメニューを開き、電源ボタンのサブメニューボタンをクリックしますと、メニューが表示され、エクスプローラでも[Alt]キーを押せばメニューバーが表示されるようになります。表題のように、エクスプローラ関連のメニューが表示されないトラブルに見舞われてしまった場合にお試しください。
それでは、また次号でお会いしましょう。
阿久津良和(Cactus)