Zipファイルの関連付けが変更出来ない
知人から、zipファイルの関連付けが変になったと相談を受けました。
詳しくヒアリングしてみると、Outlookで送られてきた添付ファイルがwinmail.datだった場合にOutlookなら開けると聞いて意図的に(勘違いして)winmail.zipをOutlookに関連付けてしまったとの事でした。
つまり、zipファイルをOutlook.exeに関連付けてしまったということでした。
これを聞いた時に普通に関連付けを戻せば良いんじゃないか?と思っていたのですが、どうやら一度Outlook.exeに拡張子を関連付けると、変更ボタンが表示されなくなるのはWindowsの仕様?らしいです。

試しにやってみると本当に「変更」ボタンが非表示になってしまいました。
コレは酷い!Windowsのクソ仕様だと思います。

強制的に関連付けを変更する方法
この状態になってしまうと関連付けをやり直すUIが表示されないので変更が出来なくなります。「既定のプログラム」から関連付を変更しても変更結果が保存されないのでダメでした。益々クソ仕様だと感じます。
回避方法を検索するとそれっぽい情報はいくつかありますが(レジストリをいじる)、私が試して結果的に上手く出来た方法を記しておきます。参考にした情報は下記です。
これからやろうとしていることは、レジストリを一箇所削除することで、ユーザーによる関連付け情報(の定義)が消えるので、再びやり直すことが出来るだろうという強制的な方法です。
レジストリの位置、及びregファイルのサンプルです。
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.zip\UserChoice]
Code language: CSS (css)
HKEY_CURRENT_USERの頭にハイフン(-)を付けているのは、レジストリから削除するという意味です。コピペしてメモ帳などでxxx.regファイルを作成し内容をペーストし保存すれば、作成したxxx.regファイルをダブルクリックでレジストリを削除出来ます。
もちろんregedit.exeを実行して、手作業で自分で該当するレジストリを探し出して削除する方法でも構いません。むしろそちらの方をオススメします。該当するレジストリが存在しているか自身で確認してから削除した方が良いでしょう。
関連付けボタンが復活
レジストリを削除したことで、拡張子「.zip」に定義されたUserChoice(outlook.exeが記録されていた)をレジストリから削除できました。それによって関連付けするボタンが再び表示される様になりました。拡張子「.zip」の関連付けが未定義という状態にすることに成功しました。適切にエクスプローラーに関連付けしなおしてやれば解決です。
ほっと一安心ですが、Outlookに関連付けるとなぜ関連付けを修正出来ないくなるのでしょう?謎なクソ仕様です。
一説によるとOutlookはWindowsのExplorerとかなり連携しているので一度関連付けるとOSが変更を許さなくなるのでは無いかと推測されています。
OSとアプリの垣根が明確ではないWindowsならではのクソ仕様ですね。それでもWindowsのシェアを考えると我慢しながら使って行くしか無さそうです。MSのOS開発のセンスのなさに我慢しつつ。
コメント