Sign in Join
Wiki copytemporary

LazAutoUpdater/ru

English · Polski · Русский

Lazarus Auto-Updater

Резюме

botton \

Загрузка


Установка


Пример приложения


Интернационализация(локализация)


Использование

pascal
LazAutoUpdate1.AutoUpdate;
pascal
If LazAutoUpdate1.DownloadInProgress Then
  Begin
  CanClose := False;
  ShowMessage('Пожалуйста, подождите. Загрузка все еще продолжается.');
  End;
pascal
LazAutoUpdate1.ShowWhatsNewIfAvailable;

Больший контроль

pascal
If LazAutoUpdate1.NewVersionAvailable Then
      MessageDlg(Application.Title, 'Новая версия ' + Application.Title +
        ' - доступна.' + LineEnding +
        'Нажмите «Проверить наличие новой версии» в меню «Справка», чтобы обновиться.', mtConfirmation,
        [mbOK], 0);
pascal
If LazAutoUpdate1.NewVersionAvailable then ..... else ...
pascal
If LazAutoUpdate1.DownloadNewVersion then ..... else ...
pascal
If LazAutoUpdate1.UpdateToNewVersion then ..... else ...

Отладка

pascal
LazAutoUpdate1.DebugMode:=TRUE;

тогда вы можете использовать встроенный метод OnDebugEvent для отслеживания активности:

pascal
procedure TForm1.LazAutoUpdate1DebugEvent(Sender: TObject; lauMethodName,lauMessage: string);
begin
// используется TEventLog
   Logger.Info('('+lauMethodName+') - ' + lauMessage);
end;

Также возникают события: OnDownloaded и OnNewVersionAvailable, а также свойство LastError с информацией, которую вы можете использовать для отладки.\

Поддержка


Лицензия


Развертывание вашего приложения с помощью LazAutoUpdate


Использование [свойств] auOtherSourceFilename и auOtherSourceURL


LazAutoUpdate [в виде приложения] в системном трее


Создание универсального онлайн-установщика/программы обновления

pascal
procedure TForm1.Button1Click(Sender: TObject);
// Uses SysUtils,LazFileUtils,ulazautoupdate и т.д.
Var sDirectoryToInstallTo: string;
begin
sDirectoryToInstallTo := ProgramDirectory + 'installed';
Application.Title:='My whizzy app'
LazAutoUpdate1.WorkingMode := lauInstall;
LazAutoUpdate1.ProjectType := auSourceForge;
LazAutoUpdate1.SFProjectname:='mywizzy';
LazAutoUpdate1.VersionsININame:='mywizzyapp.ini';
LazAutoUpdate1.ZipfileName:='mywizzyapp.zip';
LazAutoUpdate1.AppFileWithPath := sDirectoryToInstallTo + DirectorySeparator + 'mywizzyapp.exe';
// Наша обязанность создать папку
if not DirectoryExistsUTF8(sDirectoryToInstallTo) then ForceDirectoriesUTF8(sDirectoryToInstallTo);
LazAutoUpdate1.Appversion:='0.0.0.0';
If LazAutoUpdate1.DownloadNewVersion then
  begin
    If LazAutoUpdate1.UpdateToNewVersion then
    begin
      LazAutoUpdate1.ShortCut.Category := scUtility;
      LazAutoUpdate1.ShortCut.Target := LazAutoUpdate1.AppFileWithPath;
      LazAutoUpdate1.ShortCut.ShortcutName := Application.Title;
      LazAutoUpdate1.MakeShortCut; //создает ярлык на рабочем столе и пункт меню Пуск в Windows
    end;
  end;
end;
pascal
// Uses asyncprocess
procedure TForm1.RunInstalledApp;
var
  AProcess: TAsyncProcess;
begin
  if not FileExistsUTF8(LazAutoUpdate1.AppFileWithPath) then
  begin
    ShowMessageFmt('%s не существует! Сначала установите его.',
      [LazAutoUpdate1.AppFileWithPath]);
    Exit;
  end;
  AProcess := TAsyncProcess.Create(nil);
  try
    AProcess.Executable := LazAutoUpdate1.AppFileWithPath;
    AProcess.Execute;
  finally
    Aprocess.Free;
  end;
end;

Список Public-методов


Список неопубликованных свойств


Развертывание нескольких обновлений в одном проекте


Если загрузка занимает много времени


Versions.ini

Формат выглядит следующим образом:

;файл версии LazAutoUpdate 
[versions]
GUI=0.0.2


Исходный код и последние версии


Безопасность

Windows 10

Linux


Рабочий процесс

(Техническое объяснение)

Рабочий процесс LazAutoUpdater для обновления запущенного приложения выглядит следующим образом:

Пользователь видит:


Minesadorada


From the Free Pascal wiki, page "LazAutoUpdater/ru", as it stood on 2022-01-07 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.