【问题标题】:NSIS Embed Uninstaller readRegStr FilepathNSIS 嵌入卸载程序 readRegStr 文件路径
【发布时间】:2012-09-11 21:22:35
【问题描述】:

我有一个使用 HM NIS Edit 创建的卸载程序。到目前为止,它正在从静态路径执行卸载程序。但我想让它动态化。它必须读取 reg,然后使用该路径作为前缀才能找到卸载程序。

readRegStr $0 HKLM "SOFTWARE\Data Access Worldwide\Visual DataFlex\17.0\Defaults" VDFRootDir

我希望我说清楚了。

【问题讨论】:

  • 卸载.exe的路径不能真正动态,因为它通常是注册的,所以控制面板可以找到它。您是指卸载程序应该从中删除文件的路径吗?
  • 它只需要读取注册表以找出 VDF 的安装位置,因此我可以将其用作卸载程序的前缀。它读取 VDF 的安装路径是:C:\Appl\Visual DataFlex 17.0\ 所以卸载程序将在:C:\Appl\Visual DataFlex 17.0\Uninstall Visual DataFlex 17.0.22.0\UNWISE.EXE 我希望我做了我自己清楚。

标签: nsis filepath uninstallation


【解决方案1】:

您可以使用 StrCpy 连接字符串:

ReadRegStr $0 HKLM "SOFTWARE\Data Access Worldwide\Visual DataFlex\17.0\Defaults" VDFRootDir
StrCpy $0 "$0\Uninstall Visual DataFlex 17.0.22.0\UNWISE.EXE"
ExecWait '"$0"'

如果你只使用字符串一次,你甚至不需要 StrCpy:

ReadRegStr $0 HKLM "SOFTWARE\Data Access Worldwide\Visual DataFlex\17.0\Defaults" VDFRootDir
ExecWait '"$0\Uninstall Visual DataFlex 17.0.22.0\UNWISE.EXE"'

【讨论】:

  • 哈哈,我真的从 20 行代码变成了 5 行。谢谢安德斯!
猜你喜欢
  • 2012-01-26
  • 2014-09-13
  • 2013-07-02
  • 2013-02-20
  • 2012-03-19
  • 2012-02-12
  • 2011-02-18
  • 2017-11-15
  • 2011-07-25
相关资源
最近更新 更多