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\""