Delphi-PRAXiS
Seite 1 von 16  1 2311     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TMSWebUpdate - eine neue WebUpdate-Komponente (https://www.delphipraxis.net/109301-tmswebupdate-eine-neue-webupdate-komponente.html)

Marco Steinebach 27. Feb 2008 18:42


TMSWebUpdate - eine neue WebUpdate-Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Listers,
vor gut einer Woche hatte ich entgültig die Nase voll. Ich suchte eine Komponente für ein automatisches WebUpdate, Internet-Update, ganz wie ihr wollt.
Entweder es gab lauter teures Zeug, oder Freeware, die zwar gut, aber meist recht wenig anpassbar war, dann noch ein paar Schnipsel hier, ein Textchen da, ein Code-Teilchen wo anders....
Also gut, selber schreiben...
Und hier ist das Ergebnis.

TMSWebUpdate ist ganz sicher nicht neu, aber
- Freeware mit Source
- Einfach zu integrieren
- Anpassbar, also keine Formulare die schon mit dabei sind
- Flexibel, was die Anzahl der runterzuladenden Dateien angeht
- Flexibel beim format der Steuerdatei auf dem Server.
- Nicht erst ab Delphi 2006 enterprise lauffähig. ;-)
- Auf Indy basierend, also geht ab Delphi 5.


Webupdate schaut auf einem Server in einer Infodatei nach, ob eine neuere Version, als die aktuelle, vorhanden ist. Falls ja, können eine, oder mehrere Dateien, heruntergeladen, und ggf. eine davon als Update ausgeführt werden.

Dazu einfach die Komponente auf die form.
Die zwei eigenschaften
UpdateURL und IniName müssen natürlich ausgefüllt werden.
UpdateUrl ist die Adresse zur ini-datei also z.B.
www.meine-seite.de/Software
(http und / am ende werden automatisch ergänzt)
IniName ist der Name der Datei, in der die Infos über ein evtl. Update stehen, also beispielsweise
MeinProg_Update.html

Und MeinProg_Update.html könnte dann ungefähr so aussehen:
[Version]
Major=1
Minor=0
Release=0
Build=99

[File001]
Name=MeinProg_Update.exe
Start=1

[File002]
name=EinSound.wav
Path=sounds

[New]
Ein Fehler beim entgültigen löschen von Dateien wurde beseitigt.

Mehrere kleine Sachen sind jetzt leider kaput. Ich bin noch dran! ;-)
...

Alles was nach dem Schlüsselwort
[New]
steht, wird gnadenlos als WhatsNew angezeigt, dann zu finden in der WhatsNewListe der Komponente.

Ach ja, die Anweisung zur Prüfung heißt
CheckForUpdates.
Das war’s schon, und 6 Ereignisse
OnUpdatefound
OnNoUpdateFound
OnDownloadProgress
OnDownloadComplete
OnNextFile und
OnError
Gibt’s natürlich auch noch.

So. und nun wünsche ich viel spaß beim ausprobieren, testen, einsetzen, was auch immer. Ich würde mich über verbesserungsvorschläge, wünsche, anregungen, kritik, besonders über Lob, natürlich sehr freuen. Wenn bedarf ist, können wir auch gerne ein Projekt daraus machen.

Viele Grüße
Marco

webcss 27. Feb 2008 18:54

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hört sich gut an,einfach und geradeheraus :thumb:
Geht's auch ohne TComponent-heritage, also einfach als TObject? Wäre schon cool...... 8)

Crazy Ivan 27. Feb 2008 18:57

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
kann man die heruntergeladenen dateien auch in ein anderes verzeichnis packen, bespielsweise "%MeineAnwendung%\Resourcen\blah\" ?? oder müsste das per update.exe im temp geschehen?

ansonsten: supi :D

Marco Steinebach 27. Feb 2008 21:23

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hi WebCSS,
Zitat:

Zitat von webcss
Geht's auch ohne TComponent-heritage, also einfach als TObject? Wäre schon cool...... 8)

Schau ich mir morgen an. Hilf mir mal: wo wäre denn der Witz dabei?

webcss 27. Feb 2008 22:47

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Zitat:

Zitat von Marco Steinebach
Schau ich mir morgen an. Hilf mir mal: wo wäre denn der Witz dabei?

Naja, zum einen finde ich es persönlich bei nichtvisuellen Komponenten sinnlos, den ganzen TComponent overhead mitzuschleppen, vorAlle,wenn man z.B. Konsolenanwendungen schreibt. Zum anderen haben Leute wie ich z.B. :oops:, die TurboExplorer nutzen, eh keinen Effekt davon, da Fremdkomponenten nicht installiert werden können :lol:

Ist eigentlich auch ne einfache Geschichte: einfach per Compiler-Switch die class auf TComponent oder TObject, und den Constructor ebenso, das ist alles...

Schau es Dir einfach mal an.

Marco Steinebach 28. Feb 2008 19:07

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hallo again,

so. Dann machen wir mal ‚n kleines ChangeLog auf:
- die Klasse TWebUpdate kann jetzt als TComponent oder TObject kompiliert werden (Compilerdirektive). Danke an WebCss.
- Es wird in der Info-Datei zwischen einem direkten und indirekten Update unterschieden. Beim direkten update wird die anwendung geschlossen und dann eine batchdatei ausgeführt, die die alte anwendung löscht, (natürlich mit Pause vorher), die update umbenennt und sie dann wieder startet. Beim indirekten wird die als erstes angegebene Datei einfach ausgeführt, für ein Update-Programm, beispielsweise mit Inno Setup erstellt.
- Es ist jetzt für jede Datei, die ins Programmverzeichnis soll, möglich, sie in ein Unterverzeichnis des Programmverzeichnisses zu packen, die werden auch automatisch erstellt. Vielen dank an Crazy Ivan. Das geht nur im Programmverzeichnis, damit’s erst gar kein gehampel mit Vista gibt, und im Temp-Verzeichnis würde das, meiner Meinung nach, keinen wirklichen sinn machen.
- Eine ReadMe ist inzwischen auch da!
- Und auch ein Demo-Programm für’s direkte Update, das indirekte kommt noch. Ach ja, die url www.odissa.de/Software/UpdateTest_Update.html funktioniert wirklich, die liegt auf meiner Homepage.

Schaut’s euch mal an, aktualisiert, wie immer, im ersten Beitrag. Bin weiter gespannt auf Verbesserunsvorschläge, Wünsche kritik und alles andere.

Viele grüße
Marco

webcss 28. Feb 2008 22:13

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
super, dankeschön, werd's demnächst mal testen!
eine sache fällt mir noch ein: ne liste mit downloadservern, die nach und nach abgeklappert werden, ähnlich wie z.B. Antivir das macht....

Pif 15. Mär 2008 21:41

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hallo
Ich bin noch anfänger und ich hab ein problem. Ich bekomm die komponente nicht installiert. Ich hab delphi 2007, aber wenn ich sie auf "neue vlc komponente" gehe und dann alles angebe passiert nichts. Was muss ich denn machen um die Komponente richtig zu installieren?

wäre nett wenn mir das jemand sagen könnte, denn ich werde aus dem readme net schlau

Pfoto 15. Mär 2008 22:10

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hallo und Willkommen Pif,

du musst eine Komponente in ein Package installieren,
das dient quasi als Conteiner für mehrere Komponenten.
Du könntest über "Neu" ein neues Package erstellen
oder ein vorhandenes nehmen.

Denke dann auch daran, den Suchpfad anzupassen
(unter Tools > Optionen > Delphi-Optionen)

Notfalls kannst du die Komponente auch erst zur Laufzeit
erstellen, dann musst du sie nicht in die Palette installieren.


Gruß
Pfoto

Pif 15. Mär 2008 22:35

Re: TWebUpdate - eine neue WebUpdate-Komponente
 
Hallo Pfoto
Danke für deine hilfe, das mit dem package habsch begriffen.
aber wenn ich das installieren will kommt ein fehler im quelltext der komponente

Delphi-Quellcode:
fIdHTTP.OnWork := InternalOnWork;
[DCC Fehler] WebUpdateThread.pas(39): E2009 Inkompatible Typen: 'Liste der Parameter ist unterschiedlich'

Mach ich da was falsch oder liegt es am quellcode?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 Uhr.
Seite 1 von 16  1 2311     Letzte »    

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