ASSOCとレジストリエディタで、コンテキストにかかわる関連付けを修正
Widnowsのコンテキストメニュー
ファイルの上で右クリックしたら、ぱらりと出てくるメニューを
「コンテキストメニュー」
というのだけども。
Microsoft Office2010 をインストールしたら、HTMLファイルの編集(E)の割り当てが、 Microsoft Word
に割り当てられてしまった。
も、ちょー イラっとする。
つい 編集 を押しちゃって、そのたびにWordが開くからねぇ。
従来のWindowsと異なり、Windows7はファイルのプロパティでコンテキストの内容を修正できない。
ま、HTMLファイルに関しては、
インターネットオプション→プログラム→HTMLの編集
で変更はできるのだけども。
今後のことも考え、今回はあえて ASSOCとレジストリエディタで、コンテキストにかかわる関連付けを修正することにする。
ファイルタイプは、コマンドプロンプトから ASSOC
で調べることができる。
というか、本来 拡張子に対する関連付けは ASSOC と FTYPE
を使うものなんだけど、GUIが久しい今日にいたっては、めったに使われないかもしれないねぇ
アクセサリ→コマンドプロンプト を起動して、
> assoc .html
と入力すると、htmlfile というファイルタイプであることがわかる。
ちなみに
> assoc .htm
と入力しても、htmlfile と返されるので、これらの拡張子が htmlfile というファイルタイプにまとめられていることがわかる。
さらに
> assoc htmlfile
と入力すると、HTML Document であることが挙証される。
この プロンプトで regedit
と入力すると、レジストリエディタが起動する。
HKEY_CLASSES_ROOT\htmlfile
を見ると・・・、はいはい、ありました。shell の中の Edit という項目が 編集(E) の部分。
正確には
HKEY_CLASSES_ROOT\htmlfile\shell\Edit\command
に割り当てられた文字列が、起動されるプログラムのフルパス名。
私の環境では↓このように記載されていた。
"C:\Program Files\Microsoft Office\Office14\msohtmed.exe" %1
Officeの関連付けプロセス(つまりランチャー)を呼んでるね。
おしりの %1 は、そのプログラムで開くファイル名のことで、この場合は クリックされたファイル自身になる。
レジストリエディタで
HKEY_CLASSES_ROOT\htmlfile\shell\Edit\command
の値にフルパス名を入力する。
"C:\Program Files\TeraPad\TeraPad.exe" %1
フルパス名をダブルクォーテーションでくくるのは、Program Files という部分にスペースが入っているため。
これをしないと、C:\Program というファイルを起動することになる。
もっとうまいやりかたがあるのかもしれないけどね。
プロパティからの修正を不可にしたのなら、純正のコンテキストエディターみたいなのがあるといいんだけどなぁ。
ま、拡張子がそれほど一意的な識別子でなくなったいま、拡張子で挙動を変えたり設定したりという概念は古くはある。
かつて拡張子は専用ソフトウェアの識別子の意味があったけど、いまはそうでもないからね。
とはいえ、GUIの設定をCUIでしなきゃならんというのは、根源的な自己否定ともいえるので、いい方法が編み出されるといいんだけど。
(2010/11/20・山崎はるか)