2014-11-05 363 views
1

我使用Inno Setup使安装程序包,这是我的注册表代码。Inno安装程序。如何卸载注册表值?

[Registry] 
; Add php path to windows variable. 
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};{drive:c:\}\{#WwwServer}\php\php5.5"; Check: NeedsAddPath(ExpandConstant('{drive:c:\}\{#WwwServer}\php\php5.5')); Flags: preservestringtype; 

NeedsAppPath我从这里 “How do I modify the PATH environment variable when running an Inno Setup Installer?” 得到了它。

这可以正确安装和添加路径,但我不知道如何在卸载时删除路径。

这是我想从Windows中删除的路径PATH变量。
{drive:c:\}\{#WwwServer}\php\php5.5

如何在卸载时从Windows PATH中删除此路径?

+0

我不认为现在有一个现成的解决方案,所以我想你需要编程读取值,删除你附加的内容并保存值。此外,多次安装您的设置会为关键值附加多条路径。 – TLama 2014-11-05 17:17:27

+0

@TLama可悲的是。我不认识帕斯卡。 :s – vee 2014-11-05 17:29:31

+0

[Inno Setup - 在卸载程序时从PATH环境变量中删除路径]的可能重复(http://stackoverflow.com/questions/35410421/inno-setup-remove-path-from-path-environment-variable- while-uninstalling-a-pro) – 2016-02-15 14:47:51

回答

1

你可以简单地把一个标志,你准备好了!

标志:当您卸载应用程序uninsdeletevalue

这会删除注册表中的值。

+0

我试过这个,但它不起作用。路径值被“添加”到当前路径,使用此标志将全部删除它们。我只是想添加删除。 – vee 2014-11-14 07:58:16

+0

如果您在卸下应用程序时有价值,则可以删除整个密钥并添加旧密钥。 – 2014-11-14 13:42:05

+0

@jparthj如何用Inno Setup完成这项工作? – Allan 2015-08-11 22:27:03

1

只需在[Registry]部分条目中使用Flags: uninsdeletekey即可在卸载应用程序时删除注册表项(它只会删除由Inno Setup创建的注册表)。

例如:

[Registry] 
Root: HKLM; SubKey: SOFTWARE\SEGA; Flags: uninsdeletekey 

想了解更多,请Registry aren't fully deleting when uninstalling

相关问题