Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


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

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


Саш_ОК,
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={code:GetInstallPath}
OutputDir=.

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {code:GetInstallPath}

[_Code]
// Берём путь установки программы из реестра
function GetInstallPath( AppID: String ): String;
var
  Path: String;
begin
  Path:= '';
  RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My Program_is1','InstallLocation', Path);
  Result:= Path;
end;

function InitializeSetup(): Boolean;
var
  Version,s:string;

begin
  Result:=True;
  //  Проверка установлена ли программа, через реестр
  if not RegValueExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My Program_is1','InstallLocation') then
  begin
    s:='Программа MY_PROGRAM не установлена или установлена неверно.' #13#13 'Дальнейшая работа мастера невозможна.';
    MsgBox(s, mbError, mb_Ok);
    Result:=False;
  end else
  //  Проверка присутствия файла в папке с установленной программой
  begin
  If (FileSearch('MyProg.exe', ExpandConstant('{code:GetInstallPath}'))='') then
    begin
      s:='Извините, в директории '+ExpandConstant('{code:GetInstallPath}')+'' #13 'не обнаружены файлы, подтверждающие подлинность программы.' #13#13 'Пожалуйста, выберите правильный путь для установки обновления.';
      MsgBox(s, mbError, mb_Ok);
      Result:= False;
    end else
      // И проверка версии оригинальных файлов
    begin
      GetVersionNumbersString(ExpandConstant('{code:GetInstallPath}\MyProg.exe'), Version);
      if Version < '1.5' then
      begin
        s:='У Вас страрая версия такая-такаято -мол установить новую ????';
        if MsgBox(s, msgButtonInstall, mb_yesno) = idNo then
      begin
        Result:= False;
        exit;
      end else
        Result:=True;
      end;
     begin
      if Version >= '1.5' then
      begin
        s:='Обновление не требуется!';
        MsgBox(s, msgButtonOK, mb_ok);
        Result:= False;
        exit;
      end;
     end;
    end;
  end;
end;

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:37, 03-02-2009 | #445