Webからファイルをダウンロードした際に、同じファイルだけど特定のリンクだけ特定のアプリで動かす、なんてことができないかと思い、少し調べもの。
MIME Typeの指定
Webアプリなどでファイルをダウンロードさせる際には、その内容を表す「Content-Type」というヘッダー情報を用意して、そこにデータの種類を表す文字列を指定します。それがMIME Type*1と呼ばれるものです。
たとえば、Excel 2003以前のExcelファイルだと「application/vnd.ms-excel」と指定すれば、受けた側のクライアントPCで「あ、こいつはExcelで開けばいいのね」となってExcel 2003や互換モードのExcel 2010などが開きます。
さて、あるファイルだけ別のアプリで動かしたいというのならば、このMIME Typeに新しいものを用意して、それに「別のアプリ」を関連づければよさそうですね。新しいMIME Typeの定義はWebサーバー側でできますし、どうやらそれに対するアプリの設定もWindows側にあるようなので、事前に両者の取り決めと設定が必要ですが、なんだかできそうな気がしますね。
MIME Typeとアプリの関連付け
MIME Tyhpeは、直接アプリと関連付けられていませんでした。MIME Typeとアプリの関連付けの間に、拡張子との関連づけが入っていたのです。簡単に書くと、
[application/vnd.ms-excel] ⇒ [.xls] ⇒ [C:/Program Files/…/Excel 2003本体.exe]
のようになっていました。
MIME Typeと拡張子の関係は、レジストリの「HKEY_CLASSES_ROOT(長いのでHKCRと略記)」にある拡張子ごとの設定に記載されていました。こんな感じです。
拡張子に対する実際のアプリの設定は、上記の「Excel.Sheet.8」のようなファイルタイプ名に対するレジストリ設定、同じくHKCRにある「/Excel.Sheet.8」に記載されています。
ということは、
- MIME Typeを新設しても、拡張子としか関連付けられない。
- 既にある拡張子に対して、2つのMIME Typeを指定することはできないようだ。
- となると、新設したMIME Type に対する新しい拡張子を用意する必要がある。
ということになりそうです……。それはちょっと違うんだよな。
残念ながら、今やりたいことには使えなさそう。
ということで、とりあえずMIME Typeとアプリの関連付けに関するメモでした。
![Windows 7 レジストリ徹底活用マニュアル Windows 7 レジストリ徹底活用マニュアル](http://ecx.images-amazon.com/images/I/61XwWVvZE2L._SL160_.jpg)
- 作者: 阿久津良和
- 出版社/メーカー: 技術評論社
- 発売日: 2010/10/20
- メディア: 単行本(ソフトカバー)
- クリック: 23回
- この商品を含むブログ (2件) を見る