Updates für Programm herunterladen



  • Hey @all,

    ich hoffe das Thema gehört hierher.
    Und zwar habe ich ein Programm in BCB geschrieben 🙂 ok soweit so gut, nur wollte ich es jetzt gerne realisieren, das man updates zum Programm über das Menü herunterladen kann.

    Hat jemand dazu Erfahrungen, bzw. kann mir jemand helfen?

    Habe auf dem Server PHP, MySQL, also sollte dem Glaube ich nichts im Wege stehen, nur da ich keine Ahnung habe wie das realisieren soll benötige ich Eure hilfe.

    Vielen Dank im Voraus
    Lg _freeze_



  • Zunächst solltest du dir mal gedanken machen auf welche Teilproblkreise du bei diesem Feature stösst... z.B. Erstellen des Menüeintrags, ermitteln der aktuellen Version, ermitteln von Updateversionen, Datei aus dem Internet laden, etc. pp.

    Zu all diesen Teilproblemen wäre es dann wohl sinnvoll zunächst auch mal die Suchfunktion zu Rate zu ziehen und bei Bedarf nachzufragen...

    -junix



  • Kommt drauf an wie groß das Programm ist.

    Die einfachste und schnellest methode wäre so:

    Gib deinem Programm immer Versionsnummer.
    Einmal mit der Eigenschaft für die .exe Datei (Was man im BCB einstellen kann) und einmal als Hardgecodeten String.

    AnsiString strVersion = "1.0";
    

    Im deinem Programm baust du dir die Update funktion ein (mit HTTP-Komponente, damit du auch HTTP sprichst mit dem WebServer).

    Da kannst du deinem Programm auf diese URL schicken:

    AnsiString strUpdateURL = "http://update.freeze.de/index.php?id=UltraEdit&method=check&CurrentVersion=" + strVersion;
    

    So. Das wäre das erste für das Programm...

    Dann programmiert du eine PHP-Datei die diese Argumente verarbeitet.
    Die Ordner Struktur vom webserver (wo update.freeze.de hinleitet) könntest du so machen:

    /upudates/UltraEdit
    

    In diesem Ordner hast du dann 2 Dateien.
    Einmal eine update.ini und dann update.exe.

    Update.exe ist ein installer was dein PRogramm updatet.
    In der update.ini könntest du das eintragen:

    update.ini schrieb:

    [Update]
    Version=2.0
    Programm=UltraEdit

    Das PHP Skript hat ja die Parameter id,method und CurrentVersion übergeben bekommen.
    So mit geht das PHP Skript in den entsprechenden Ordner und parst die update.ini aus.
    Dann nimmt sich das PHP-Skript den Wert vom Key "Version" und vergleicht den Wert mit der Variable "CurrentVersion".

    Daran sieht du, das der User die Version 1.0 hat, aber auf dem Server schon eine Version 2.0 gibt.
    PHP gibt dem PRogramm das eine neue Version gibt.

    Dein Programm muß dann auf so eine URL zugreifen, wenn es eine neue Version gibt:

    AnsiString strUpdateURL = "http://update.freeze.de/index.php?id=UltraEdit&method=update&CurrentVersion=" + strVersion;
    

    Das PHP-Skript sollte dann die Datei an dein Programm weiterleiten...
    Das PRogramm speichert die DAtei irgendwo hin (Temporären ORdner).
    Das PRogramm führt nachdem Download die datei aus und beendet sich gleichzeitig.

    Der Rest muß das Update-Installer selber machen.

    Wenn es kein update gibt, muß dein Programm ja nix mehr machen..

    Hoffe das ist verständlich.
    Sonst frag einfach oder per ICQ.


Log in to reply