AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TMSWebUpdate - eine neue WebUpdate-Komponente

TMSWebUpdate - eine neue WebUpdate-Komponente

Ein Thema von Marco Steinebach · begonnen am 27. Feb 2008 · letzter Beitrag vom 11. Aug 2013
Antwort Antwort
Seite 1 von 16  1 2311     Letzte » 
Marco Steinebach
Registriert seit: 4. Aug 2006
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
Angehängte Dateien
Dateityp: zip tmswebupdate_v1.10.1_174.zip (24,9 KB, 798x aufgerufen)
 
webcss

 
Delphi XE2 Professional
 
#2
  Alt 27. Feb 2008, 19:54
Hört sich gut an,einfach und geradeheraus
Geht's auch ohne TComponent-heritage, also einfach als TObject? Wäre schon cool...... 8)
  Mit Zitat antworten Zitat
Crazy Ivan
 
#3
  Alt 27. Feb 2008, 19:57
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
  Mit Zitat antworten Zitat
Marco Steinebach

 
Delphi 5 Enterprise
 
#4
  Alt 27. Feb 2008, 22:23
Hi WebCSS,
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?
Marco Steinebach
  Mit Zitat antworten Zitat
webcss

 
Delphi XE2 Professional
 
#5
  Alt 27. Feb 2008, 23:47
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. , die TurboExplorer nutzen, eh keinen Effekt davon, da Fremdkomponenten nicht installiert werden können

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.
  Mit Zitat antworten Zitat
Marco Steinebach

 
Delphi 5 Enterprise
 
#6
  Alt 28. Feb 2008, 20:07
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
Marco Steinebach
  Mit Zitat antworten Zitat
webcss

 
Delphi XE2 Professional
 
#7
  Alt 28. Feb 2008, 23:13
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....
  Mit Zitat antworten Zitat
Pif
 
#8
  Alt 15. Mär 2008, 22:41
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
  Mit Zitat antworten Zitat
Pfoto

 
Turbo Delphi für Win32
 
#9
  Alt 15. Mär 2008, 23:10
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
Jürgen Höfs
  Mit Zitat antworten Zitat
Pif
 
#10
  Alt 15. Mär 2008, 23:35
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

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?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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