Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webupdate (https://www.delphipraxis.net/41082-webupdate.html)

Delphi Star 25. Feb 2005 17:40


Webupdate
 
Ich will in eines meiner Programme eine Webupdate-Funktion einbauen.
Ich hab mir das so gedacht:
  • Das Programm besteht aus zwei Anwendungen, eine Programm.exe und eine Update.exe
  • Das Hauptprogramm prüft ob eine neue Version zur Verfügung steht (z.B. über eine Datei die auf dem Server liegt, in der die aktuelle Versionsnummer steht)
  • Wenn eine neue Version zur verfügung steht wird das die Update.exe gestartet und das Programm beendet sich.
  • Die Update.exe läd das neue Programm vom Server herunter, z.B nach ...\irgendwas\NeueVersion.exe
  • Sobald es fertig ist wird die Programm.exe gelöscht und die NeueVersion.exe in Programm.exe umbennant
  • Programm.exe wird gestartet

Gib es da eine bessere Lösung oder ist das so gut :?:

moritz 25. Feb 2005 17:49

Re: Webupdate
 
Was machst du, falls es ein Update für das Updateprogramm gibt? :mrgreen:
Ich mache es bei meinen Programmen so: Update prüfen, Wenn Update da, Exe-Datei ein Temp-Ordner speichern, Batch-Datei schreiben, die die alte Exe überschreibt (mit einer kleinen Verzögerung am Anfang), Batch-Datei ausführen, Programm beenden.

Neuni 25. Feb 2005 17:50

Re: Webupdate
 
Hab mir sowas ähnliches auch mal gemacht...kannst ja mal gucken obs hilft: http://web223.server-drome.net/neuni...utorial_update schon etwas älter, hat aber funktioniert :D

PS: Is eigendlich für Noobs geschrieben :mrgreen:

leddl 25. Feb 2005 18:03

Re: Webupdate
 
Zitat:

Zitat von moritz
Was machst du, falls es ein Update für das Updateprogramm gibt?

Ganz einfach: Neue Version des Update-Programms, die runtergeladen wirst heißt zB Update.exe.temp oä. Bei einem Programmstart wird geprüft, ob so eine Datei existiert. Ist sie da, wird die Update.exe gelöscht und die Update.exe.temp umbenannt.
So hab ich das bei mir gelöst.

Delphi Star 25. Feb 2005 19:09

Re: Webupdate
 
Ich hab mich für die Methode mit der Batch-Datei entschieden.
Jetzt nur noch eine Frage: Wie bekomme ich es hin das die Batch-Datei kurz wartet, bevor das programm gelöscht und die neue Version umbennant wird :?:

moritz 25. Feb 2005 19:11

Re: Webupdate
 
Bei Google suchenwait bat

Delphi Star 25. Feb 2005 19:53

Re: Webupdate
 
kennt jemand ein gutes tut zum thema download von dateien :?:

moritz 25. Feb 2005 20:10

Re: Webupdate
 
Bei Google suchenIndy Tutorial Delphi :mrgreen:

Delphi Star 25. Feb 2005 20:20

Re: Webupdate
 
Diesmal find ich bei Google nichts brauchbares.
Ich such ein Tut, wo mindestens beschrieben ist:
  • Wie läd man die Datei herunter :mrgreen:
  • Wie ermittle ich die Downloadgeschwindigkeit (weiß ich schon)
  • Wie macht man eine Fortschrittsanzeige
  • Wie kann man den Download abbrechen
Am besten wär ein Tut mit INDY

Delphi Star 26. Feb 2005 09:51

Re: Webupdate
 
*push*

glkgereon 26. Feb 2005 09:56

Re: Webupdate
 
guck mal in der codelib, da war mal wass mit herunterladen und fortschrittsanzeige..l.

Download FortschrittsanzeigeDownload Fortschrittsanzeige

Markus 26. Feb 2005 10:15

Re: Webupdate
 
Zitat:

Zitat von moritz

Das kann Probleme machen, da "wait" nicht bei allen Windows-Versionen dabei ist. Du kannst es aber mit einem lokalen Ping mit Zeitbeschränkung machen:

Code:
PING -n 3 127.0.0.1>nul
Hier ist die Zeitbeschränkung 3 Sekunden. Und der ping-Befehl müsste auf allen Rechnern vorhanden sein.

moritz 26. Feb 2005 11:13

Re: Webupdate
 
Zitat:

Zitat von Markus
Zitat:

Zitat von moritz

Das kann Probleme machen, da "wait" nicht bei allen Windows-Versionen dabei ist. Du kannst es aber mit einem lokalen Ping mit Zeitbeschränkung machen:

Code:
PING -n 3 127.0.0.1>nul
Hier ist die Zeitbeschränkung 3 Sekunden. Und der ping-Befehl müsste auf allen Rechnern vorhanden sein.

Das erste Ergebnis ist ein eigener Script, der auf allen OS-Versionen läuft. Aber die Ping-Idee ist auch nicht schlecht, allerdings kann es sein, dass da der Firewall anschlägt.
Andere Möglichkeit: Einfach ein kleines Programm (nonVCL) schreiben, dass dir eine Sekunde wartet.

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 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