AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TMSWebUpdate - eine neue WebUpdate-Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

TMSWebUpdate - eine neue WebUpdate-Komponente

Ein Thema von Marco Steinebach · begonnen am 27. Feb 2008 · letzter Beitrag vom 11. Aug 2013
Antwort Antwort
Seite 9 von 16   « Erste     789 1011     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, 799x aufgerufen)
 
Svenkan

 
Delphi 7 Enterprise
 
#81
  Alt 27. Jul 2008, 00:59
Hallo Marco,

jetzt weiß ich wieder, wo das Problem liegt!
Ich hatte in der Komponente immer geändert, dass die Versionsdaten aus einer anderen Datei (VPlan.exe) ausgelesen werden sollen und deswegen findet er hier nun natürlich keine Angaben darüber.
Wär es möglich, dass du vlt. die Möglichkeit einbaust, dass man diese Daten aus einer 2. Datei auslesen kann?

Nun bekomme ich allerdings die Fehlermeldung 'Ein deaktiviertes oder unsichtbares Fenster kann nicht den Fokus erhalten.'.

Delphi-Quellcode:
procedure THauptFormular.GetVersionClick(Sender: TObject);
begin
 WebUpdate.CheckForUpdates;
 ActiveControl := Fortschritt;
end;
Das Problem tritt in der Zeile mit der Zuweisung der ActiveControl auf.
Sven Kannenberg
  Mit Zitat antworten Zitat
Svenkan

 
Delphi 7 Enterprise
 
#82
  Alt 1. Aug 2008, 01:19
Ich hätte noch folgende Bitten: es wäre toll, wenn man in der Komponente selbst das TEMP-Dir und den Namen für die *.bat festlegen könnte. Dann muss man nicht immer in den Code selbst reingehen. Zumal man sowieso nicht immer dran denkt.

Desweiteren wüsste ich mal gerne, ob der im Screen genannte Fehler wirklich so gewollt ist.
Miniaturansicht angehängter Grafiken
vplan_fehler_oo_265.jpg  
Sven Kannenberg
  Mit Zitat antworten Zitat
Marco Steinebach

 
Delphi 5 Enterprise
 
#83
  Alt 1. Aug 2008, 11:04
Huhu,
Kein Problem, ich denke auch, daß mit dem direkten Ändern der Namen ist ganz sinnig. Wird eingebaut.
Welchen Fehler meinst du? Du müßtest, bitte, den Text des Fehlers in die Nachricht kopieren, weil ich die Screenshots nicht lesen kann.
Aber, zu deiner letzten Nachricht: bist du sicher, daß die ProgressBar sowohl Enabled als auch Visible auf True stehen hat? Zur Not mal mit'm Debugger nachschauen.
Und das Form, auf dem "Fortschritt" angezeigt wird, ist momentan das aktive??
Ich denke nicht, daß der Fehler von der Komponente ausgelöst wird ...
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Svenkan

 
Delphi 7 Enterprise
 
#84
  Alt 1. Aug 2008, 12:41
Hallo Marco,

dann liegts wohl tatsächlich daran, dass es ich die GroupBox mit den Download-Infos auch erst beim Download einblenden lasse. Naja, es klappt ja auch so.

Zu dem Fehler:

Anwendungsfehler
Exception EIdConnectionClosedGracefully in Modul vplan_update.exe bei 0001E956.
Die Verbindung wurde erfolgreich beendet.

Sven Kannenberg
  Mit Zitat antworten Zitat
Benutzerbild von fylo
fylo

 
Delphi 7 Personal
 
#85
  Alt 1. Aug 2008, 13:24
Moin,

Zitat von Svenkan:
Anwendungsfehler
Exception EIdConnectionClosedGracefully in Modul vplan_update.exe bei 0001E956.
Die Verbindung wurde erfolgreich beendet.
Der Fehler wird von Indy ausgelößt und ist eher eine Statusmeldung. Siehe dazu den Eintrag in der Borland-Newsgroup.

Versuch mal mit dem Debugger schrittweise durch deinen Code zusteppen, dann müsstest du irgendwann in eine Indy-Unit kommen und dort steht auch nochmal etwas zu dieser Exception (kann das leider gerade nicht, weil ich hier kein Delphi auf dem Rechner hab).
  Mit Zitat antworten Zitat
Svenkan

 
Delphi 7 Enterprise
 
#86
  Alt 2. Sep 2008, 22:12
Hallo,

mir ist gerade aufgefallen, dass wenn man einen Eintrag mit der Eigenschaft 'Path' vornimmt, diese Dateien nicht auch in der lokalen Ordnerstruktur in diesen Ordner gepackt werden. Das ist eher hinderlich, als nützlich. Wäre es möglich, dies noch einzubringen?
Sven Kannenberg
  Mit Zitat antworten Zitat
Marco Steinebach

 
Delphi 5 Enterprise
 
#87
  Alt 9. Sep 2008, 13:19
Huhu Svenkan,
ähm, kannst du deine Frage nochmal anders stellen, bitte! Mir ist nicht wirklich klar, was ich einbauen soll.
Wenn die Datei
test.dll
im Unterverzeichnis
DLLS
auf dem Zielrechner stehen soll, dann muß sie auf dem FTP-Server im Unterverzeichnis DLLS liegen und der Eintrag Path=DLLS muß angegeben sein.
Ist das bei dir so, und es geht trotzdem nicht?
Vielleicht schickst du mal deine Update.html als anlage?
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Volle

 
Delphi 7 Personal
 
#88
  Alt 9. Okt 2008, 11:12
Hi,

arbeite gerade auch an nem Webupdate.

Hab n paar Fragen bzw n paar Anregungen:

- Wie verhaelt sich das ganze wenn man nicht als Admin eingeloggt ist?
Ich mein damit wenn man keinen Schreibzugriff auf das Anwendungsverzeichnis hat?
Soweit ich gesehen hab wird das Update abgebrochen oder?

- Wenn sich nur ein paar Dateien geaendert haben (sagen wir in einem Projekt das insgesamt 100mb in vielen einzelnen Dateien hat)
dann wird sobald sich die Version aendert das komplette Paket gesaugt oder?

- Es wird am Anfang abgerufen wie gross das Update ist. Vielleicht wärs geschickt gleich noch abzufragen ob genügend
Speicherplatz auf dem Datenträger vorhanden ist. Is kein grosser Aufwand und kann fehler vermeiden :>
(hier braucht man ja ca 2x den speicherplatz den das Update hat)

- Vielleicht noch ne Kompression einbauen? 7z laesst sich ja super ueber die Kommandzeile
steuern und wenn man 50% weniger saugen muss is das glaub ich jedem recht
Somit kann man dann gleich abfragen ob man Downloadfehler hat (wenn sich die Datei nich
entpacken laesst gabs wohl nen Fehler beim saugen )

- Kanns grad nicht nachprüfen aber kümmert sich idhttp um die zeichenkodierung in urls?
Wenn nich wäre das auch kein fehler einzubauen.

- Ich glaub (wenn ichs richtig gesehen habe) kann man mit der Komponente nur Dateien Updaten die im
Anwendungsverzeichnis liegen. Vielleicht könnte man hier noch was einbauen dass auch andere Dateien ersetzt
werden können. (z.B. im Benutzerverzeichnis)


mfg
Volle
  Mit Zitat antworten Zitat
Marco Steinebach

 
Delphi 5 Enterprise
 
#89
  Alt 11. Okt 2008, 17:16
Hallo,
Zitat von Volle:
arbeite gerade auch an nem Webupdate.
Prima! Dann bringen wir das Update-Doppelpack heraus.

Zitat von Volle:
- Wie verhaelt sich das ganze wenn man nicht als Admin eingeloggt ist?
Ich mein damit wenn man keinen Schreibzugriff auf das Anwendungsverzeichnis hat?
Soweit ich gesehen hab wird das Update abgebrochen oder?
Hat nicht jede Anwendung immer, sogar unter Vista, Schreibzugriff auf ihr eigenes Verzeichnis?

Zitat von Volle:
- Wenn sich nur ein paar Dateien geaendert haben (sagen wir in einem Projekt das insgesamt 100mb in vielen einzelnen Dateien hat) dann wird sobald sich die Version aendert das komplette Paket gesaugt oder?
Im Moment leider ja. Das ist natürlich unschön, ich bin aber, bis jetzt, noch auf keine wirklich gute Idee gekommen, wie man Dateien vergleichen kann, ohne sie runterzuladen. Die Größe ist völlig uninteressant, das Datum, hm, da es ja auf einem FTP-Server liegt ... ist auch nicht wirklich 100 % zu gebrauchen, ...
Vielleicht hat hier ja jemand ‚ne Idee?

Zitat von Volle:
- Es wird am Anfang abgerufen wie gross das Update ist. Vielleicht wärs geschickt gleich noch abzufragen ob genügend Speicherplatz auf dem Datenträger vorhanden ist. Is kein grosser Aufwand und kann fehler vermeiden :>
(hier braucht man ja ca 2x den speicherplatz den das Update hat)
Joa stimmt, bau ich mit ein.

Zitat von Volle:
- Vielleicht noch ne Kompression einbauen? 7z laesst sich ja super ueber die Kommandzeile
steuern und wenn man 50% weniger saugen muss is das glaub ich jedem recht
Hab ich mir noch nicht angesehen, aber ein Tool, was ich zu meinem Programm dazuinstallieren muß, egal wer’s installiert, finde ich nicht wirklich geglückt. Mit einer DLL könnte ich da schon eher leben ...
Aber Kompression ist, natürlich, nicht schlecht.

Zitat von Volle:
- Kanns grad nicht nachprüfen aber kümmert sich idhttp um die zeichenkodierung in urls?
Wenn nich wäre das auch kein fehler einzubauen.
Was meinst du genau?

Zitat von Volle:
- Ich glaub (wenn ichs richtig gesehen habe) kann man mit der Komponente nur Dateien Updaten die im
Anwendungsverzeichnis liegen. Vielleicht könnte man hier noch was einbauen dass auch andere Dateien ersetzt
werden können. (z.B. im Benutzerverzeichnis)
Hab ich, bis jetzt, aus Vista-Gründen die Finger von gelassen.

Ich sags ja, mit der Zeit wird TMSWebUpdate noch richtig gut.

Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von fylo
fylo

 
Delphi 7 Personal
 
#90
  Alt 11. Okt 2008, 22:25
Zitat von Marco Steinebach:
Hallo,
Zitat von Volle:
- Wenn sich nur ein paar Dateien geaendert haben (sagen wir in einem Projekt das insgesamt 100mb in vielen einzelnen Dateien hat) dann wird sobald sich die Version aendert das komplette Paket gesaugt oder?
Im Moment leider ja. Das ist natürlich unschön, ich bin aber, bis jetzt, noch auf keine wirklich gute Idee gekommen, wie man Dateien vergleichen kann, ohne sie runterzuladen. Die Größe ist völlig uninteressant, das Datum, hm, da es ja auf einem FTP-Server liegt ... ist auch nicht wirklich 100 % zu gebrauchen, ...
Vielleicht hat hier ja jemand ‚ne Idee?
Hashwete z.B. MD5MD5 oder SHA sind für solche Aufgaben gedacht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 9 von 16   « Erste     789 1011     Letzte »    


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 08:28 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