NSIS registry:Write 没有写入所有需要的值
NSIS registry:Write not writing all of the value needed
我有这行代码
${registry::Write} "HKEY_CLASSES_ROOT\autodocedithandler\shell\open\command" "" "$PROGRAMFILES32\AutoDocEdit\AutoDocEdit.exe $\"%1$\"" "REG_EXPAND_SZ" $R0
当我 运行 安装程序并随后检查注册表时,我发现只有 '%1' 作为值输入到注册表中 - 之前的路径没有成功。
有什么原因吗?
谢谢
我猜它不喜欢引号。
尝试
${registry::Write} "HKEY_CLASSES_ROOT\autodocedithandler\shell\open\command" "" '"$PROGRAMFILES32\AutoDocEdit\AutoDocEdit.exe" "%1"' "REG_EXPAND_SZ" $R0
写这个字符串不需要用这个插件,用WriteRegStr
就可以了。没有什么可扩展的(Explorer/shell32 在内部扩展 %1)所以你不需要它是扩展字符串类型。
我最终通过使用文件夹的定义解决了这个问题
!define DefaultAutoDocEditFolder "$PROGRAMFILES32\AutoDocEdit\AutoDocEdit.exe"
以后像这样使用
${registry::Write} "HKEY_CLASSES_ROOT\autodocedithandler\shell\open\command" "" '${DefaultAutoDocEditFolder} "%1"' "REG_EXPAND_SZ" $R0
希望此解决方案对其他人有所帮助。
我有这行代码
${registry::Write} "HKEY_CLASSES_ROOT\autodocedithandler\shell\open\command" "" "$PROGRAMFILES32\AutoDocEdit\AutoDocEdit.exe $\"%1$\"" "REG_EXPAND_SZ" $R0
当我 运行 安装程序并随后检查注册表时,我发现只有 '%1' 作为值输入到注册表中 - 之前的路径没有成功。
有什么原因吗?
谢谢
我猜它不喜欢引号。
尝试
${registry::Write} "HKEY_CLASSES_ROOT\autodocedithandler\shell\open\command" "" '"$PROGRAMFILES32\AutoDocEdit\AutoDocEdit.exe" "%1"' "REG_EXPAND_SZ" $R0
写这个字符串不需要用这个插件,用WriteRegStr
就可以了。没有什么可扩展的(Explorer/shell32 在内部扩展 %1)所以你不需要它是扩展字符串类型。
我最终通过使用文件夹的定义解决了这个问题
!define DefaultAutoDocEditFolder "$PROGRAMFILES32\AutoDocEdit\AutoDocEdit.exe"
以后像这样使用
${registry::Write} "HKEY_CLASSES_ROOT\autodocedithandler\shell\open\command" "" '${DefaultAutoDocEditFolder} "%1"' "REG_EXPAND_SZ" $R0
希望此解决方案对其他人有所帮助。