こんにちは、阿久津です。Windows 7では[Shift]キーを押しながらアクションを実行することで、異なる動作を実現する機能が備わっているのをご存じでしょうか。[Shift]キーを押しながらタスクボタンを右クリックしますと、ジャンプリストではなくクラシックなコンテキストメニューが表示されるのもその一例と言えるでしょう。

同ロジックに含まれる動作の1つにファイル・フォルダのコンテキストメニューがあります。コンテキストメニューは対象となるオブジェクトや状況によって表示項目が異なりますが、Windows 7で追加されているのが、前述の[Shift]キーを交えた動作。例えばフォルダの場合は<新しいプロセスで開く><コマンドウィンドウをここで開く><パスとしてコピー>という項目が加わり、実行形式ファイルの場合は<別のユーザーとして実行><パスとしてコピー>の2項目が加わります(図01~03)。

図01: [Shift]キーを押しながらフォルダを右クリックしますと、<新しいプロセスで開く><コマンドウィンドウをここで開く><パスとしてコピー>という項目が加わります

図02: [Shift]キーを押しながらファイルを右クリックした場合は、<スタートメニューに表示する><パスとしてコピー>の2項目が加わります

図03: 実行ファイルを対象に同じ動作を行なった場合、<別のユーザーとして実行><パスとしてコピー>の2項目が加わります

そもそもコンテキストメニューの動作は、HKEY_CLASSES_ROOT \ {対象キー} \ shellもしくはshellexが担います。前者は<開く><編集>といった旧来型のアクションを、後者は拡張動作として動作する各ハンドラを用いたアクションを管理するために用意されたもの。そのため標準的に用意されている<プログラムから開く>はもちろん、ウイルス対策ソフトや圧縮伸張ソフトのアクション項目もshellexに含まれます。

その一例として、HKEY_CLASSES_ROOT \ * \ shellex \ ContextMenuHandlers \ {90AA3A4E-1CBA-4233-B8BB-535773D48449}キーを削除してみましょう。同キーは「Taskband Pin」と書かれていることから察しが付くように、<タスクバーに表示する>という項目を実現するためにクラスIDを呼び出していますが、同キーを削除することで、実行形式ファイルのコンテキストメニューからは、同項目が表示されなくなります(図04~05)。

図04: レジストリエディタで、HKEY_CLASSES_ROOT \ * \ shellex \ ContextMenuHandlers \ {90AA3A4E-1CBA-4233-B8BB-535773D48449}キーを削除します。あくまでも一例ですので実際には試さないでください

図05: すると実行形式ファイルのコンテキストメニューから<タスクバーに表示する>が取り除かれました

しかし、これだけでは[Shift]キーを押したときの動作はどこが判断しているのかわかりません。そこで今週は、[Shift]キーを押すと表示する項目<コマンドウィンドウをここで開く>を常に表示するチューニングをお届けしましょう。

1.[Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力してから<OK>ボタンをクリックします。
2.レジストリエディタが起動したら、HKEY_CLASSES_ROOT \ Directory \ shell \ cmdキーをたどって開きます。
3.<ファイル>メニュー→<エクスポート>と選択し、同キーの内容をレジストリファイルに保存します。
4.右ペインにある文字列値「Extended」を右クリックし、メニューから<削除>を選択します。
5.確認をうながすダイアログが表示されたら<はい>ボタンをクリックしてください。
6.次はHKEY_CLASSES_ROOT \ Directory \ Background \ shell \ cmdキーを開き、ステップ03~05の操作を行ないます。
7.続いてHKEY_CLASSES_ROOT \ Drive \ shell \ cmdキーを開き、ステップ03~05の操作を行ないます。
8.以上の操作を終えたらレジストリエディタを終了させましょう。
9.<スタート>メニューの電源ボタンメニューから<ログオフ>を選択して、Windows 7に再ログオンします。

これでチューニング終了です(図06~15)。

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

図07: レジストリエディタが起動したら、HKEY_CLASSES_ROOT \ Directory \ shell \ cmdまでキーをたどって開き、<ファイル>メニュー→<エクスポート>とクリックします

図08: ファイル保存ダイアログが現われたら、キー名などを用いたファイル名を「ファイル名」のテキストボックスに入力し、<保存>ボタンをクリックします

図09: レジストリのバックアップを終えたら、右ペインにある文字列値「Extended」を右クリックし、メニューある<削除>をクリックします

図10: 確認をうながすダイアログが現われたら<はい>ボタンをクリックして削除を実行します

図11: 次にHKEY_CLASSES_ROOT \ Directory \ Background \ shell \ cmdまでキーをたどって開き、図07~08の操作を参考にレジストリのバックアップを行なってから、文字列値「Extended」を右クリック。メニューある<削除>をクリックします

図12: 確認をうながすダイアログが現われたら<はい>ボタンをクリックして削除を実行します

図13: 今度はHKEY_CLASSES_ROOT \ Drive \ shell \ cmdまでキーをたどって開き、図07~08の操作を参考にレジストリのバックアップを行なってから、文字列値「Extended」を右クリック。メニューある<削除>をクリックします

図14: 確認をうながすダイアログが現われたら<はい>ボタンをクリックして削除を実行します

図15: 以上の操作を終えたらレジストリエディタを終了後に、<スタート>メニューにある電源ボタンのボタンをクリックし、メニューを表示させてから<ログオフ>をクリックしてWindows 7に再ログオンします

すると[Shift]キーを押さなくとも、フォルダおよびドライブのコンテキストメニューに<コマンドウィンドウをここで開く>が表示されるようになります。このチューニングにより、コマンドプロンプトを多用する方なら、操作手順がワンステップ省略されるため、利便性も向上するのではないでしょうか。ちなみにロジックは簡単で、文字列値「Extended」があるキーは[Shift]キーを押した際に表示されるという仕組み。しかし、このロジックとは異なる項目もありますので、それらに関しては随時紹介できればと思います(図16)。

図16: この状態でフォルダを右クリックしますと、<コマンドウィンドウをここで開く>があらかじめ表示されます。なお、ドライブの右クリックした際のコンテキストメニューも同様です

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)