Windows 10 は、デフォルトのプログラム オープン コマンドのレジストリ値に ---open-url を追加します。

Windows 10 は、デフォルトのプログラム オープン コマンドのレジストリ値に ---open-url を追加します。

私は Windows 10.1803、ビルド 17134.320 を実行しています。VS Code で .asp ファイルを開こうとしています。通常のプロセスを実行しましたが、何をしても、ASP ファイルを開こうとすると、Windows は常にどのプログラムを使用するかを尋ねてきます。

そこで、記事を調べたところ、基本的には Windows レジストリを手動で編集する必要があると書かれていました。私が参考にした記事は見つかりませんが、それは Microsoft のドキュメントでした。ファイル拡張子をプログラム キーにリンクさせ、プログラム キーにシェル コマンドを次のように設定するように書かれていました。

HKEY_CLASSES_ROOT
    .asp
        (Default) - vscode
        OpenWithProgids
            (Default) - (value not set)
            VisualStudio binding
            sublime
    vscode
        DefaultIcon
            (Default) - (value not set)
        shell
            open
                command
                    (Default) - "C:\Users\tschwab\AppData\Local\Programs\Microsoft VS Code\Code.exe" -r "%1"

.txt ファイルと Sublime でも同じことを試してみました (同じ問題があったため)。うまくいきました。しかし、何らかの理由で、ASP ファイルを開くと、Windows が vscode のレジストリ値を編集することがよくあります。次のようになります。

vscode
    (Default) - URL:vscode
    URL Protocol - 
    DefaultIcon
        (Default) - (value not set)
    shell
        open
            command
                (Default) - "C:\Users\tschwab\AppData\Local\Programs\Microsoft VS Code\Code.exe" --open-url -- "%1"

つまり、3 つの変更です。ルートの既定値が追加され、「Url Protocol」の値が追加され、コマンドが変更されました。この後、Windows エクスプローラーでファイルを開くことは機能しなくなりました。コマンドを編集し直すと、再び機能します。

それで、何が間違っているのでしょうか?

答え1

解決策を見つけたここ。カスタム レジストリ キー を作成しましたvscodeが、Electron が VS Code の背後でそれを編集していました。まさに必要な という名前のキーがすでに存在していることに気づきませんでした。.asp バインディングをからVSCodeSourceFileに再マップしたところ、うまくいきました。vscodeVSCodeSourceFile

関連情報