Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Delphi WebUpdate, WUS makes it easy (https://www.delphipraxis.net/139824-webupdate-wus-makes-easy.html)

WebUpdate System 6. Sep 2009 09:11


WebUpdate, WUS makes it easy
 
Inspiriert durch diesen Thread, möchte ich mal ein kleines Tutorial für ein einfaches WebUpdate vorstellen.

Voraussetzungen:
  • Progammiersprache, welche auf .DLL's zugreifen kann
  • WUSDLL.DLL
  • geeigneter Header
Am Beispiel von Delphi (welche Version auch immer), hier Consolenapplikation, da wir es ganz einfach haben möchten, nehmen wir die Zeile

Delphi-Quellcode:
uses ... WUSDLLInterface;
mit in die Programmdatei mit auf.

Am Programmstart prüfen wir auf neue Updates

Delphi-Quellcode:
var
  UpdatesAvailable: Integer;
begin
  try
    //Check if Updates available and download the Archives
    UpdatesAvailable := CheckAndDownload(pWideChar(paramstr(0)),
                                         pWideChar(ExtractFilePath(paramstr(0))),
                                         pWideChar('http://localhost/myUpdatelist.WUS'),
                                         pWideChar('1.0.0.0'),
                                         Trunc(now)); //i. e. Present Date as Param
und laden auch gleich die zugehörigen Archive aus dem Netz.

Wenn das Programm beendet wird und wir ausreichend berechtigen haben, so installieren wir die Updates

Delphi-Quellcode:
//  Updates available, then install it
  if UpdatesAvailable = 0 then //Updates available and the achives verify is o.k.
   if Check4InstallationRights = 0 then //Authorization is given
    Install(pWideChar(paramstr(0)),
            pWideChar(ExtractFilePath(paramstr(0))),
            pWideChar('http://localhost/myUpdatelist.WUS'),
            pWideChar('1.0.0.0'),
            Trunc(now)) //i. e. Present Date as Param
   else
    ; //Insufficiend privilige
Dazwischen machen wir das, was man mit dem Programm im allegemeinen tut, wir lassen es arbeiten :thumb:

Das war es auch schon. War doch gar nicht soooo schwer, oder? :drunken:

Mhhh, jetzt hätten wir doch beinahe das wichtigste vergessen, woher soll das Programm denn wissen, ob Updates vorhanden sind, wo die Archive liegen und welche Dateien wohin installiert werden sollen? Hierzu erstellen wir mit dem Composer die Updateliste, mit den Parametern, Dateien und Verzeichnisinformationen. Diese bringen wir dann zu den Adressen, die hinterlegt sind. Das WUS muß dann nur noch Wissen, wo die Updateliste im Netz zu finden ist (Aufrufparameter). Den Rest kann wird im über die Updateliste mitgeteilt.

So, hoffe mal, das WebUpdate ist jetzt nicht zu kompliziert geworden (3 Zeilen Pascalkode :stupid: ) Der Download zum WUS (mit Hilfe und Composer) ist hier zu finden. Dort werden auch die Aktualisierungen des WUS gepostet.

Hier noch das ganze (lauffähige) Demoprogramm inkl. Fehlerbehandlung:

Delphi-Quellcode:
program Demo;
{$APPTYPE CONSOLE}

uses
  SysUtils,
  WUSDLLInterface;

var
   UpdatesAvailable: Integer;
begin
  try
    //Check if Updates available and download the Archives
    UpdatesAvailable := CheckAndDownload(pWideChar(paramstr(0)),
                                         pWideChar(ExtractFilePath(paramstr(0))),
                                         pWideChar('http://localhost/myUpdatelist.WUS'),
                                         pWideChar('1.0.0.0'),
                                         Trunc(now)); //i. e. Present Date as Param

    {
      Do Something
    }

//  Updates available, then install it
    if UpdatesAvailable = 0 then //Updates available and the achives verify is o.k.
     if Check4InstallationRights = 0 then //Authorization is given
      Install(pWideChar(paramstr(0)),
              pWideChar(ExtractFilePath(paramstr(0))),
              pWideChar('http://localhost/myUpdatelist.WUS'),
              pWideChar('1.0.0.0'),
              Trunc(now)) //i. e. Present Date as Param
     else
      ; //Insufficiend privilige
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
BTW: Die WUSDLL.dll sollte man dem Programm beilegen und in dem selben Ordner ablegen, wie das eigentliche Hauptprogramm.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz