このページの本文へ

前へ 1 2 次へ

Windows Info 第35回

エクスプローラーの右クリックメニューをカスタマイズする

2014年11月20日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

メニュー登録の仕組みを見ていく

 前ページの表のキーについてコンテキストメニュー項目を追加する方法は2つあり、1つは「Shell」キー以下に項目を登録する方法、もう1つは「ShellEx\ContextMenuHandlers」キーに登録する方法だ。前者は、Windows初期からの方法で、単純に実行ファイルやコマンドを登録することができる。後者は、COMコンポーネントをコンテキストメニューの項目に登録する方法だ。なお、「Shell」キー側にコンテキストメニュー用のCOMコンポーネントを登録することも可能だ。

 Shellキー以下にメニュー項目を登録するには、メニュー項目用のキー(キー名は任意。以下メニュー項目キーと呼ぶ)を作り、その下に「Command」キーを作る。あとは「メニュー項目キー」の既定値にメニューに表示される文字列を登録し、Commandキーの既定値に実行させたいコマンド文字列や実行ファイル名パスを記述する。

 Commandキーにコマンドや実行ファイル名パスを記述する場合、対象となったファイルやフォルダなどへのパスは、「%1」で参照が可能になる。たとえば、フォルダを対象としてフォルダ内のファイルの一覧をクリップボードに登録するには、

cmd.exe /c dir "%1" | clipboard

というコマンド をCommandキーの既定値として登録する。コマンドラインについて詳しくない読者のために解説すると、最初の「cmd.exe /c」は、以後のコマンドを実行するコマンドインタプリタ(cmd.exe。コマンドプロンプトウィンドウの実体となるプログラム)で、「dir」は、ファイルの一覧を表示するコマンドだ。

 「"%1"」は、メニューの実行時に、対象となるフォルダに置き換えられ、これがdirコマンドに続くことで、該当のフォルダのファイルの一覧を出力するというコマンドになる。「| clipboard」は、dirコマンドの実行結果をクリップボードに設定するコマンドだ。

実際の手順を詳しく解説する

 ここからは、具体的なやり方を解説する。ただし、レジストリエディタを操作するため、不慣れな人は実際に試す必要はない。

 まずは、レジストリエディタで「HKEY_CLASSES_ROOT\Folder\Shell」にメニュー項目用のキー「ASCIITest01」を作成する。キーの名前は、メニュー表示とは無関係で、同じ場所にすでにあるものと重複しなければ何でもいい。前述のようにコンテキストメニュー用に登録するキーの名前は、同一のキーが別の場所に対して使われたときに意味がある。

 キーを作成したら、右側の領域で「(既定)」を編集して、コンテキストメニューに表示する文字列を入力する。ここでは「右クリックメニュのサンプル(Folder)」としておく。

レジストリエディタで、HKEY_CLASSES_ROOT\Folder\Shellを開き、ASCIITest01というキーを作成し、その既定の値に「右クリックメニュのサンプル(Folder)」を設定する

 次に作成した「ASCII-Test01」キーの下にさらに「Command」キーを作成し、同様に「(既定)」を編集状態にする。ここには、実行されるコマンドとして以下のものを入力する。

HKEY_CLASSES_ROOT\Folder\Shell\ASCIITest01の下にCommandキーを作り、その既定値にコマンドを設定する

cmd /c echo Folder=%1 && pause

 これは、テスト用にウィンドウを開いて、受け取ったパラメーターを表示し、任意のキーでウィンドウを閉じるという動作をするコマンドだ。

 設定が終わったら、エクスプローラーを開いて、フォルダの上で右クリックしてメニューに登録した項目が表示されるかどうかを確認してみよう(冒頭画面)。なお、コンソールウィンドウが一瞬開いてすでに閉じてしまうような場合、Commandキーに登録したコマンドに何かエラーがある。登録がうまくいけば、下の画面のようなコンソールウィンドウが表示されるはずだ。

実行すると、受け取ったパラメータ(フォルダのパス)を表示してキー入力待ちになる

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン