とてもしんどい、、、、
事象
タイトルの通り、.exeファイルを開く際に紐づけるアプリケーションを誤って「VSCode」に変えてしまった。
そのせいで、.exe系のファイルが全て使えなくなってしまった。
- 原因調査するために「chrome.exe」を開こうとすると、VSCodeが立ち上がる
- コマンドプロンプトから設定変更するために「cmd.exe」を開こうとすると、VSCodeが立ち上がる
かなしい、、、、、
やった事
1. 既定のプログラムから変更
以下の手順を参考に「既定のプログラム」から変更を試みる。
結果として、拡張子「exe」はこの機能からだと変更ができなかった。
2. assocコマンドで紐づけを変更
以下の手順を参考に「assocコマンド」を使って変更を試みる。
結果として、事象にも書いた通りコマンドプロンプトすら使えないので変更できなかった。
幸いにもVSCodeは使用できるので、VSCodeのターミナルから変更を試みたが、以下のエラーとなり変更できなかった。
> assoc .exe=exefile
アクセスが拒否されました。
処理中にエラーが発生しました: .exe
3. レジストリから紐づけを変更(失敗パターン)
以下の手順を参考に「regedit」を使って変更を試みる。
結果として、「regedit」も実体は「regedit.exe」なので使う事ができず、変更できなかった。
4. レジストリから紐づけを変更(成功パターン)
以下の手順を参考にレジストリを書き換えてみる。
結果として、一部手順を修正する事で上手くいった!!!!!!!!!!!!!!!!!!!
- コマンドプロンプトから「notepad」を起動する手順になっているが、コマンドプロンプトが使えない
- 幸いにもVSCodeは使えるので、VSCodeを起動し、以下のファイルを作成
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\OpenWithList]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\OpenWithProgids]
"exefile"=hex(0):
- 「Exe.reg」をダブルクリックで実行したが、「指定されたファイルはレジストリスクリプトではありません。レジストリエディタの中でインポートできるのは、バイナリレジストリファイルだけです。」というエラーが表示され実行できない
- ファイルの先頭に空行がある事が原因と判明したため、「Exe.reg」を以下に修正
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\OpenWithList]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\OpenWithProgids]
"exefile"=hex(0):
- 再度実行すると正常終了したので、ログオフ→ログインして、exeが使える事を確認
まとめ
Windows7は2020年1月にサポートが切れるというのに、今更こんなハマり方をしてしまった、、、
みなさん、Windows7からWindows10に切り替えましょう、、、、、、、。