Помогите плиз с кодом. Нужно сделать некоторые вещи, но не знаю как.
1)Как заставить инсталяшку не оставлять след в установке-удалении программ
2)Встал вопрос с правами. При обновлении файла сбрасываются права на файл. Как их можно сохранить?
3) Ну и самое интересное. Нужно перед инсталляцией (обновлением) сделать бэкап файлов с сохранением прав на эти файлы.
Код:

[Setup]
AppName=Обновление для программы заказа продукции фирмы ЗАО"Арнебия"
AppVerName=Обновление для программы заказа продукции фирмы ЗАО"Арнебия" ver. 0.1
AppPublisher=Arnebia Inc
AppPublisherURL=http://www.arnebia.ru/
AppSupportURL=http://www.arnebia.ru/
AppUpdatesURL=http://www.arnebia.ru/
DefaultDirName={reg:HKLM\SOFTWARE\Arnebia,AppPath|{pf}\Arnebia\ArnebiaProduct}
DisableDirPage=yes
DefaultGroupName=Arnebia
OutputDir=C:\test progr
OutputBaseFilename=setup
SetupIconFile=C:\test progr\ArnebiaProduct\ArnebiaDoc.ico
Compression=lzma
SolidCompression=yes
[Dirs]
Name: {app}\img
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
[Icons]
Name: {group}\; Filename: {app}\ArnebiaDoc.ico; IconFilename: {app}\ArnebiaDoc.ico; Flags: runminimized
[Files]
Source: ..\..\..\test progr\ArnebiaProduct\img\img_installer\AP_Setup.jpg; DestDir: {app}\img\img_installer
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия 25s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия 26s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия 27s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия 28s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия 25s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия 26s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия 27s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия 28s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия Копия 25s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия Копия 26s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия Копия 27s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\img\img_product\Копия Копия Копия 28s.gif; DestDir: {app}\img\img_product
Source: ..\..\..\test progr\ArnebiaProduct\ArnebiaDoc.ico; DestDir: {app}
Source: ..\..\..\test progr\ArnebiaProduct\client.xml; DestDir: {app}
Source: ..\..\..\test progr\ArnebiaProduct\data.mdb; DestDir: {app}
[Code_]
procedure MyAfterInstall();
begin
MsgBox('Just installed ArnebiaProduct.exe as ' + CurrentFileName + '.', mbInformation, MB_OK);
end;
var
UpDate:string;
function GetInstallPath( AppID: String ): String;
var
Path: String;
begin
Path:= '';
RegQueryStringValue(HKLM, 'SOFTWARE\Arnebia', 'AppPath', Path);
Result:= Path;
end;
function InitializeSetup(): Boolean;
var
Version,s:string;
begin
Result:=True;
UpDate:='2.0.0.7';
// Проверка через реестр
if not RegValueExists(HKLM, 'SOFTWARE\Arnebia', 'AppPath') then
begin
s:='Программа не установлена.' #13#13 'Дальнейшая работа невозможна.';
MsgBox(s, mbError, mb_Ok);
Result:=False;
end else
// Проверка присутствия файла в папке с установленной программой
begin
If (FileSearch('ArnebiaProduct.exe', ExpandConstant('{code:GetInstallPath}'))='') then
begin
s:='Извините, в директории '+ExpandConstant('{code:GetInstallPath}')+'' #13 'не обнаружены файлы, подтверждающие подлинность программы.' #13#13 'Пожалуйста, выберите правильный путь.';
MsgBox(s, mbError, mb_Ok);
Result:= False;
end else
// MsgBox('Версия:'+ Version, mberror, mb_Ok)
begin
if Version < UpDate then //сравниваем
begin
RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Arnebia', 'AppVers', Version);
Result:=true;
end else begin
MsgBox('Обновление на данную версию не устанавливается.', mberror, mb_Ok);
Result:=false;
end;
end;
end;
end;
procedure DeinitializeSetup();
begin
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Arnebia', 'AppVers', UpDate);
end;
Заранее очень благодарен за помощь. А то на работе трясут... сроки, а я застрял на этих моментах.pi