このパスをレジストリ キー値として機能するようにフォーマットするにはどうすればよいですか?

このパスをレジストリ キー値として機能するようにフォーマットするにはどうすればよいですか?
C:\Program Files (x86)\DotR\DotR.exe

バックスラッシュをエスケープする必要があることはわかっていますC:\\Program Files (x86)\\DotR\\DotR.exeが、それでも機能しません。スペースと括弧を特殊文字として処理する必要がありますか? その場合、どのように処理しますか?

詳細を編集: コンテキスト メニューから小さなコンソール アプリケーションを実行しています。これを C:\DotR.exe に保存してHKEY_CLASSES_ROOT\Folder\shell\DotR\値を追加するとC:\\DotR.exe %1正常に動作しますが、作成しようとすると、C:\\Program Files(x86)\\DotR\\DotR.exe %1アプリケーションが見つからないというエラー メッセージが表示されます。これを C ルートではなくプログラム ファイルに保存します。

答え1

具体的にどのように追加しようとしているのですか?

主な問題は、名前を引用符で囲む必要があるということだと思います。

"C:\Program Files (x86)\DotR\DotR.exe" %1

GUI エディターを使用して値を文字列値として追加する場合は、または文字regedit.exeをエスケープする必要はありません。 GUI がエスケープを処理するので、引用符を追加するだけで済みます。\"

.regファイルで追加する場合は、\文字をエスケープする必要があり、" 文字もエスケープする必要があります。したがって、REG_SZ 値は"c:\asdf\asdf"次のようになります。

[HKEY_CURRENT_USER\Temp]
"asdf"="\"c:\\asdf\\asdf\""

関連情報