ファイルの関連付けで「開く」以外の動作を追加する

 通常ファイルの拡張子を関連付けすることで、エクスプローラからファイルをダブルクリックしたり、コンテキストメニューから「開く」を選ぶことで、関連付けされたプログラムが起動してそのファイルを開くことが出来る用ようなります。
 このファイルの関連付けを利用することで、コンテキストメニューへ「開く」以外のメニューアイテムを追加することも出来ます。

ファイルの関連付けは、

  1. レジストリのHKEY_CLASSES_ROOTに関連付けしたい拡張子のキーを登録して、データの(標準)に適当な名前を書込む。
  2. HKEY_CLASSES_ROOTに1.で書込んだ「名前」と同じキーを作成して、その下に必要なキーとデータを書込む。
    例としてLHA書庫ファイルを関連付けする場合、
    HKEY_CLASSES_ROOT\.lzh というキーを作成し、(標準)にLHA Archive Fileと書込む。

    HKEY_CLASSES_ROOT\LHA Archive Fileというキーを作成し、データの(標準)にファイルの説明を書込む。ここで書込んだ説明はエクスプローラの「ファイルの種類」に表示されるようなる)。次にサブキーとしてshell\open\commandを作成し、データの(標準)に実際にファイルを開くためのプログラム名と引数(コマンドライン)を書込む(例:C:\LhaMi\LhaMi.exe %1)。このとき選択中のファイル名をプログラムに渡すために" %1"を付け加える。

    最後にDefaultIconキーを作成し、データの(標準)にアイコンファイルを書込む(ここにプログラム名を書込んだ場合、そのプログラムが持っているアイコンが表示される)。

 ことで行ないます。
 
 このshellキーに任意の名前\commandというサブキーを作成すると、コンテキストメニューへ「開く」意外にもメニューアイテムを追加することが出来ます。
 ここでは、上記で作成したLHA書庫ファイルの関連付けに「LhaMiで解凍」メニューを追加してみます。
 shell\extractキーを作成し、データの(標準)にLhaMiで解凍を書込む。ここで書込んだ文字がメニューに表示されます。
  
 shell\extract\commandキーを作成し、データの(標準)に実際に解凍するためのプログラム名を書込む。
  

 このことで、コンテキストメニューに「LhaMiで解凍」が追加されます。このことを応用すれば他にも色々なことが出来そうですね。