私はなるべくポータブル版のアプリケーションを使用するようにしている。
定期的にアプリケーションの使用状況を確認して削除しているのでさくっと消せるように、また、しょっちゅうPCを入れ替えるので、管理しやすいようにするため。
既定のプログラムにしているアプリケーションを削除して、再度入れたときにパスが変わっていると既定のプログラム選択に出なくなる。
原因としてはレジストリに旧パスでアプリケーションが登録されているからだ。
つまり、レジストリに登録されているアプリケーションのパスを正しいものに変えてあげればよい。
変える値は↓
HKEY_CLASSES_ROOTApplications<アプリケーションの実行ファイル名>shellopencommand
上記キーに文字列値としてアプリケーションのパスが登録されているのでこれを変えてあげればよい。
例:私の場合
HKEY_CLASSES_ROOTApplicationssublime_text.exeshellopencommand
"C:appSublime Text 2.0.4x64sublime_text.exe" "%1"
↓
"C:appSublimeTextsublime_text.exe" "%1"