[Files] Source: RimPack\Program Files\RimPack\Uninstall\*; DestDir: {win}\$UninstallRimPack$\; AfterInstall: BackupReg; Flags: ignoreversion recursesubdirs createallsubdirs uninsrestartdelete setntfscompression [_Code] procedure BackupReg(); var res: Integer; BackupDir, Key, RegEdit: string; begin RegEdit:= ExpandConstant('{win}\regedit.exe'); BackupDir:= ExpandConstant('{win}\$UninstallRimPack$\'); Key:= 'HKEY_LOCAL_MACHINE\SOFTWARE\GNU'; Exec(RegEdit, ' -ea 00.reg ' + AddQuotes(Key), BackupDir, SW_HIDE, ewWaitUntilTerminated, Res); Key:= 'HKEY_CURRENT_USER\SOFTWARE\GNU'; Exec(RegEdit, ' -ea 01.reg ' + AddQuotes(Key), BackupDir, SW_HIDE, ewWaitUntilTerminated, Res); // тут еще три-четыре десятка ключей end; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var reg,RegEdit: string; res: integer; begin RegEdit:= ExpandConstant('{sys}\reg.exe'); if CurUninstallStep = usUninstall then begin // два разных варианта импорта reg:= ExpandConstant('{win}\$UninstallRimPack$\00.reg'); if FileExists(reg) = True then Exec('regedit.exe',' /s ' + AddQuotes(reg),ExpandConstant('{win}'),SW_HIDE,ewWaitUntilTerminated,res); reg:= ExpandConstant('{win}\$UninstallRimPack$\01.reg'); if FileExists(reg) = True then Exec(RegEdit, ' import ' + AddQuotes(reg),ExpandConstant('{win}'),SW_HIDE,ewWaitUntilTerminated,res); // три-четыре десятка файлов .reg end; end; [Registry] Root: HKLM; Subkey: SOFTWARE\GNU\; Flags: deletekey uninsdeletekey Root: HKCU; Subkey: SOFTWARE\GNU\; Flags: deletekey uninsdeletekey [UninstallDelete] Name: {app}\*; Type: filesandordirs |