ターミナルサーバで、メインのOffice suiteとしてOpenOfficeを使用してます。
が、なぜか Word/Excelビューアも入ってます。
doc,xlsファイルの関連付けはOpenOfficeに設定しているのですが、WindowsUpdateでWord/Excelビューアのセキュリティパッチを当てたら、勝手に全ユーザの関連付けを変更しやがりました。
doc,xlsファイルをビューアーで開くようにされてしまったのです。
(ユーザが個別に設定して場合は影響有りませんでした)
フォルダオプションで設定してもいいのですが、ユーザ単位の設定となってしまっては面倒なので、レジストリを直接触ることにしました。
で、参考にさせてもらったのが、Windows の関連づけ設定の仕組みです。
これを見ると、ユーザごとの関連付け(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\)が最優先で動くようです。
今回、パッチによって変更されていたのは HKEY_CLASSES_ROOT\* (Basic Class Key)でした。
(ちなみに、HKEY_CLASSES_ROOT は HKEY_LOCAL_MACHINE\Software のサブキーです。)
ビューアで開く関連付けファイルだと以下のようになってました。
(エキサイトブログのダメ仕様上一部.の前に半角スペースを置いています。実際は半角スペースを.の前の半角スペースを削除してください)
HKEY_CLASSES_ROOT\.doc
(既定)=Wordview.Document .8
"Content Type"="application/msword"
HKEY_CLASSES_ROOT\.xls
(既定)=ExcelViewer.Sheet.8
HKEY_CLASSES_ROOT\.docx
(既定)="Word.Document .12"
"Content Type"="application/vnd.openxmlformats-officedocument .wordprocessingml.document"
HKEY_CLASSES_ROOT\.pptx
(既定)="PowerPointViewer.Show.12"
これを以下のように修正したら、全ユーザでOpenOfficeで開くようになりました。(個別設定しているユーザ以外)
HKEY_CLASSES_ROOT\.doc
(既定)=OpenOffice.org.Doc
削除 → "Content Type"="application/msword"
HKEY_CLASSES_ROOT\.xls
(既定)=OpenOffice.org.Xls
HKEY_CLASSES_ROOT\.docx
(既定)=OpenOffice.org.Docx
削除" → "Content Type"="application/vnd.openxmlformats-officedocument .wordprocessingml.document"
HKEY_CLASSES_ROOT\.xlsx
(既定)=OpenOffice.org.Xlsx
HKEY_CLASSES_ROOT\.pptx
(既定)="OpenOffice.org.Pptx"
この(既定)の値は、ProgID Key というものらしく、HKEY_CLASSES_ROOT\OpenOffice.org.Doc にアイコンや実際の動作の挙動が書いているようです。
関連付けは結構厄介ですね。
参考: