2012-09-11 48 views
0

我有一个使用HM NIS Edit创建的卸载程序。截至目前,它正在从静态路径执行卸载程序。但我想让它变得动态。它必须读取该reg,然后将该路径用作前缀以查找卸载程序。NSIS嵌入卸载程序readRegStr文件路径

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

我希望我明确自己。

+0

卸载的路径.exe文件无法真正是动态因为它通常是注册的,所以控制面板可以找到它。你的意思是卸载程序应该从哪里删除文件? – Anders

+0

它只需要读取注册表以找出VDF的安装位置,以便我可以将其用作卸载程序的前缀。 它读取VDF安装路径为:C:\ Appl \ Visual DataFlex 17.0 \ 因此,卸载程序将位于:C:\ Appl \ Visual DataFlex 17.0 \ Uninstall Visual DataFlex 17.0.22.0 \ UNWISE.EXE 我希望我明确自己。 –

回答

0

你可以加入字符串与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"' 
+0

哈哈我从字面上20行代码到5 谢谢安德斯! –