Windows環境のVS Codeでフォルダを右クリックしたときに表示される「Open with Code」メニューが突然消えてしまった!なんとかしたい!
概要
今回の記事では、VS Code(Visual Studio Code)のコンテキストメニューが消えてしまった時の復旧手順を掲載する。
昨日までは表示されてたのになんでや!
右クリックメニューからサクッとVS Codeで開けないと結構不便だったりする。
症状としては下記のような感じ。
- フォルダを右クリックしても「Open with Code」が表示されない
- VS Codeの再インストールをしても復旧しない
環境
- Microsoft Windows [Version 10.0.26100.4351]
- Visual Studio Code 1.103.0
手順書
VS Codeが下記にインストールされてると想定した手順になる。
C:\Users\<User Name>\AppData\Local\Programs\Microsoft VS Code\Code.exe
この場合、パスに<User Name>
が入ってるのでユーザー名によってパスが変わる。
これを環境変数を使って、ユーザー名に左右されない設定にしたい!
しかし、レジストリエディタでキーを新規で作るとデフォルトでREG_SZ
型が使われて、REG_SZ
型だと環境変数が展開されない場合はある。される場合もある。
Icon
ではREG_SZ
型でも環境変数が展開される。
[HKEY_CLASSES_ROOT\Directory\shell\VSCode]
"Icon"="\"%USERPROFILE%\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\""
@
(既定)では環境変数が展開されずエラーになる。
[HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
@="\"%USERPROFILE%\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\""
このエラーを回避するには、@
(既定)でREG_EXPAND_SZ
型を使う必要があるんだけども、前述のレジストリエディタではキーを新規で作るとデフォルトでREG_SZ
型が使われてしまい、エディタ上では既定の型を変更することができないのでコマンドプロンプトでコマンドを実行してREG_EXPAND_SZ
型の、@
(既定)を作る。
reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command" /ve /t REG_EXPAND_SZ /d "\"%%LOCALAPPDATA%%\Programs\Microsoft VS Code\Code.exe\" \"%%V\"" /f
めんどい。
あとは、レジストリエディタで下記のような構成になるようにポチポチと設定していく。
// フォルダのアイコンを右クリックした時の処理
[HKEY_CLASSES_ROOT\Directory\shell\VSCode]
// 右クリック時に表示される文字列
@="Open with Code"
// 右クリック時に表示されるアイコン
"Icon"="\"%USERPROFILE%\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\""
// 実行されるコマンド(前述のコマンドプロンプトのコマンドで生成されてるはず)
[HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
6f,00,63,00,61,00,6c,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,73,\
00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,56,00,\
53,00,20,00,43,00,6f,00,64,00,65,00,5c,00,43,00,6f,00,64,00,65,00,2e,00,65,\
00,78,00,65,00,22,00,20,00,22,00,25,00,56,00,22,00,00,00
めんどい。
regファイル
手作業はめんどいのでregファイルで一気に設定できるようにした。(私はポチポチ設定しましたが…!)
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\VSCode]
@="Open with Code"
"Icon"="\"%USERPROFILE%\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\""
[HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
6f,00,63,00,61,00,6c,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,73,\
00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,56,00,\
53,00,20,00,43,00,6f,00,64,00,65,00,5c,00,43,00,6f,00,64,00,65,00,2e,00,65,\
00,78,00,65,00,22,00,20,00,22,00,25,00,56,00,22,00,00,00
[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]
@="Open with Code"
"Icon"="\"%USERPROFILE%\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\""
[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
6f,00,63,00,61,00,6c,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,73,\
00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,56,00,\
53,00,20,00,43,00,6f,00,64,00,65,00,5c,00,43,00,6f,00,64,00,65,00,2e,00,65,\
00,78,00,65,00,22,00,20,00,22,00,25,00,56,00,22,00,00,00
これをテキストファイルにコピペして、拡張子を.reg
にして実行すれば設定される。
[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]
を追加してるんだけども、これはエクスプローラーのアイコンが無い空白の部分で右クリックで表示されるメニューの設定になる。こちらからでもVS Codeを開けるようになる。
まとめ(感想文)
私の場合、特に前触れもなくこの問題に遭遇した。気付いていないタイミングでWindows Updateがあったのかもしれない。VS Code自体は開けるんだけども、複数のファイルがあるプロジェクトを編集する場合はやっぱり右クリックでサクッと開けた方が便利。
んで、私は最初にVS Codeの再インストールを試したんだけども駄目だったので、結局レジストリエディタでの修正が必要だった。これは環境によるんだと思う。
とりあえず、コマンドが復活してよかった!しかし、コマンドが消えた原因が分からず、コズミックホラー的な根本の問題が解決しないスッキリしない結末を迎えるのであった。