OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 23:42

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Inno setup Code
СообщениеДобавлено: Пятница, 25 Май, 2012 14:46 
Аватара пользователя

Зарегистрирован: Суббота, 06 Декабрь, 2008 22:59
Сообщения: 246
Откуда: Волгоградская обл.
Указанный инсталлятор позволяет использовать код на встроенном Паскале.

Хотелось бы узнать:

1) как перечислить файлы в заданной папке по указанному шаблону (чтобы потом скопировать их в другую папку)

2) где объявить публичные переменные?

Я полагаю, в начале секции???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Inno setup Code
СообщениеДобавлено: Среда, 30 Май, 2012 13:33 
Аватара пользователя

Зарегистрирован: Суббота, 06 Декабрь, 2008 22:59
Сообщения: 246
Откуда: Волгоградская обл.
Отвечаю сам на свой вопрос:

Код:
var
   oldPath: String;

//////////////////////////////////

function GetOldPath(): String;
var
  sUnInstPath: String;
  sOldPath: String;
begin
  sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\Моя программа_is1');
  sOldPath := '';
  if not RegQueryStringValue(HKLM, sUnInstPath, 'Inno Setup: App Path', sOldPath) then
    RegQueryStringValue(HKCU, sUnInstPath, 'Inno Setup: App Path', sOldPath);
  Result := ExpandConstant(sOldPath);
end;

///////////////////////////////////

procedure CopyRegFiles;

var
  FL: TFindRec;
  pt1,pt2 : String;
begin
   pt1 := AddBackslash(OldPath);
   pt2 := AddBackslash(ExpandConstant('{app}'));

    if (Length(oldPath) > 0) and (pt1 <> pt2) then
    begin
       try

           if FindFirst(pt1 + '*.xyz', FL) then
           begin
              repeat
       FileCopy(pt1 + FL.Name, pt2 +  FL.Name,False);
              until not FindNext(FL);
           end;
        finally
                     FindClose(FL);
        end;

    end;

end;
/////////////////////////////////
//function UnInstallOldVersion(): Integer;
//.........
//end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if (CurStep=ssInstall) then
  begin
     oldPath := GetOldPath;
     //UnInstallOldVersion();

  end;

  if (CurStep=ssPostInstall) then
  begin
     CopyRegFiles;
  end;

end;



Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB