fantik
стандартными средствами никак, можно через паскаль, пример скрипта
[code]
[Files]
Source: files\*; DestDir: {app}; Flags: ignoreversion recursesubdirs;
BeforeInstall: MyBeforeInstall
Код:
![Выделить весь код](images/misc/selectcode.png)
// При установке, бэкапим значение HKEY_CLASSES_ROOT\.pdf\default в Foxit_bak
// нужно для кореектной деинсталяции, c возвратом предыдущей ассоциации на pdf-файлы
procedure MyBeforeInstall();
var
PDF: String;
begin
if RegQueryStringValue(HKEY_CLASSES_ROOT, '.pdf', '', PDF) then
begin
RegWriteStringValue(HKEY_CLASSES_ROOT, '.pdf', 'Foxit_bak', PDF);
end;
end;
// При деинсталяции восстанавливаем бэкапное значение и удаляем ключ Foxit_bak
procedure DeinitializeUninstall();
var
PDF: String;
begin
RegDeleteValue(HKEY_CLASSES_ROOT, '.pdf', '');
if RegQueryStringValue(HKEY_CLASSES_ROOT, '.pdf', 'Foxit_bak', PDF) then
begin
RegWriteStringValue(HKEY_CLASSES_ROOT, '.pdf', '', PDF);
end;
RegDeleteValue(HKEY_CLASSES_ROOT, '.pdf', 'Foxit_bak');
end;
Если использовать родной деинстоллер, то procedure DeinitializeUninstall(); можно по идее не использовать, тогда в процедуре procedure MyBeforeInstall(); нужно использовать такой же формат ключей как и в родном деинстолере (посмотреть формат ключа в котором сам Faststone бэкапит текущее значение). Немного путано, но надеюсь понятно.