Inno Setup不会删除完整的注册表项。这就是我所做的:
[Registry]
Root: HKLM; SubKey: SOFTWARE\EA Games\Need for Speed Most Wanted-2012; ValueType: string; ValueName: GDFBinary; ValueData: {app}\GDFBinary_en_US.dll; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Need for Speed Most Wanted-2012; ValueType: string; ValueName: DisplayName; ValueData: Need for Speed Most Wanted-2012; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Need for Speed Most Wanted-2012; ValueType: string; ValueName: Locale; ValueData: en_US; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Need for Speed Most Wanted-2012; ValueType: string; ValueName: Install Dir; ValueData: {app}; Flags: uninsdeletekey
在卸载注册表中的\EA Games\Need for Speed Most Wanted-2012
文件夹
Root: HKLM; SubKey: SOFTWARE\EA Games\Need for Speed Most Wanted-2012
(Need for Speed Most Wanted-2012
游戏仅用于提示)。
任何人请帮忙。
答案 0 :(得分:3)
您的代码会自动删除HKLM\SOFTWARE\EA Games\Need for Speed Most Wanted-2012
。 {@ 1}}不会被删除。
如果您想要删除HKLM\SOFTWARE\EA Games
,您必须为其添加显式代码:
HKLM\SOFTWARE\EA Games
(这应该放在之前你的其他条目)。
该条目将仅删除空密钥Root: HKLM; SubKey: SOFTWARE\EA Games; Flags: uninsdeletekeyifempty
。如果创建了其他子键(不是由安装程序创建),则不会删除该键。如果您要无条件删除SOFTWARE\EA Games
密钥,请将EA Games
替换为uninsdeletekeyifempty
。
答案 1 :(得分:0)
安装软件后的一段时间,如果我们在这种情况下应用任何脱机补丁,则以前的安装程序被new替换。因此,在这种情况下,我们必须手动删除这些注册表项,如下所示:
usDone:
begin
if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{078ABE12-583D-43e6-96D6-5D092883DC82}_is1') then
begin
RegDeleteKeyIncludingSubkeys(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{078ABE12-583D-43e6-96D6-5D092883DC82}_is1');
end;