Реестр NSIS: не пишите все необходимые значения - PullRequest
0 голосов
/ 24 марта 2020

У меня есть эта строка кода

${registry::Write} "HKEY_CLASSES_ROOT\autodocedithandler\shell\open\command" "" "$PROGRAMFILES32\AutoDocEdit\AutoDocEdit.exe $\"%1$\"" "REG_EXPAND_SZ" $R0

Когда я запускаю установщик и впоследствии проверяю реестр, я вижу, что только «% 1» было введено в реестр в качестве значения - путь перед не сделал это.

Любая причина?

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Я в конечном итоге решил эту проблему, используя определение для папки

!define DefaultAutoDocEditFolder "$PROGRAMFILES32\AutoDocEdit\AutoDocEdit.exe"

, а затем применил вот так

${registry::Write} "HKEY_CLASSES_ROOT\autodocedithandler\shell\open\command" "" '${DefaultAutoDocEditFolder} "%1"' "REG_EXPAND_SZ" $R0

Надеюсь, что это решение поможет кому-то еще.

0 голосов
/ 24 марта 2020

Я предполагаю, что ему не нравятся кавычки.

Попробуйте

${registry::Write} "HKEY_CLASSES_ROOT\autodocedithandler\shell\open\command" "" '"$PROGRAMFILES32\AutoDocEdit\AutoDocEdit.exe" "%1"' "REG_EXPAND_SZ" $R0

Вам не нужно использовать этот плагин для написания этой строки, вы можете просто использовать WriteRegStr. Расширять нечего (Explorer / shell32 внутренне расширяет% 1), поэтому вам не нужно, чтобы это был расширяемый тип строки.

...