Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: FastStone Image Viewer
Показать сообщение отдельно

Ветеран


Сообщения: 628
Благодарности: 51

Профиль | Отправить PM | Цитировать


fantik
стандартными средствами никак, можно через паскаль, пример скрипта
[code]
[Files]
Source: files\*; DestDir: {app}; Flags: ignoreversion recursesubdirs; BeforeInstall: MyBeforeInstall

Код: Выделить весь код
// При установке, бэкапим значение 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 бэкапит текущее значение). Немного путано, но надеюсь понятно.

Отправлено: 15:46, 17-11-2006 | #45

Название темы: FastStone Image Viewer