タグ:関連付け ( 2 ) タグの人気記事
Microsoft UpdateでWord/Excelビューアのパッチ当てたら関連付けを勝手に変更された
ターミナルサーバで、メインの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 にアイコンや実際の動作の挙動が書いているようです。


関連付けは結構厄介ですね。

参考:
OKWave:ファイルの「関連付け変更」は、どこに記録されるの?
[PR]
by Jehoshaphat | 2013-03-29 22:45 | 豆知識 | Trackback | Comments(0)
関連付けられてないファイルを開いた時に表示されるWebページのリンク先を変える
WindowsXPで、拡張子が関連付けされていないファイルを開くと、"このファイルを開けません" というダイアログが表示され、"Webサービスを使用して適切なプログラムを探す" と "一覧からプログラムを選択する" が選べるようになっています。

初期値は、"Webサービスを使用して適切なプログラムを探す" になっています。
MS(http://shell.windows.com/fileassoc/0411/xml/redir.asp?EXT=拡張子)のページが開くわけですが、役に立たない場合が多く、役に立たない場合は検索エンジンで拡張子を検索しようとします。
厄介なことに、拡張子で検索すると面倒なマルウェアやそれもどきに引っかかることがあるんですよね。

ですので、MSのページでなく情シスに問い合わせるようにという独自のページを表示したいと思いました。
で、その方法です。以下のレジストリで変更できるようです。

HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Associations\intl
(intlはREG_SZで新規作成)


URL引数の LangID は言語ID,Ext には拡張子が入るようです。

ですので、値を以下のように書き換えてやればOKです。

http://hoge/fileassoc.php?LangID=%04x&Ext=%s

(fileaccoc.phpは該当の拡張子ファイルを開けたければ情シスに連絡しろというメッセージを表示)

参考:
拡張子の関連付けをWebで探す機能のURLを変更するには
[PR]
by Jehoshaphat | 2012-12-07 00:42 | 豆知識 | Trackback | Comments(0)