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 2 von 16     12 3412     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, 796x aufgerufen)
 
Pfoto

 
Turbo Delphi für Win32
 
#11
  Alt 16. Mär 2008, 08:13
Hallo Pif,

fIdHTTP.OnWork := InternalOnWork; bedeuted, dass beim das Ereignis OnWork von der Methode
InternalOnWork aufgefangen wird.

Die Parameter des Types von OnWork und die Parameter
der Methode von InternalOnWork müssen identisch sein.
Das ist nun vielleicht durch Versionsunterschiede
nicht mehr passend.

Die Methode
procedure InternalOnWork (Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); müsste also angepasst werden.

Ich habe die Indy-Komponenten nicht installiert, deswegen
kann ich ab hier nicht weiterhelfen. Sorry.



Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
Pif
 
#12
  Alt 16. Mär 2008, 09:35
Trotzdem Danke Pfoto.
Ich scheine der einzige mit dem Problem zusein. Ich werd mal schaun ob ich es gefixed bekomme.

MfG Pif
  Mit Zitat antworten Zitat
Marco Steinebach

 
Delphi 5 Enterprise
 
#13
  Alt 28. Mär 2008, 17:50
Hallo,
Es gibt eine neue Version. Geändert hat sich lediglich, daß das Demo für das indirekte Update nicht mehr kommt, weil sich das, meiner Meinung nach, selbst erklärt.
Außerdem mußte ich die Demo-Update-Dateien auf meinem Server umziehen, deshalb gibts 'ne neue Version.
Viel spaß damit und viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins
 
#14
  Alt 28. Mär 2008, 21:04
Nur so: Normalerweise sind die Bezeichner (von den Events) Englisch

Ich hab mich beim ersten durchlesen gewundert, wegen dem denglisch (OnUpdateGefunden )
  Mit Zitat antworten Zitat
Delphi Code Anfänger
 
#15
  Alt 30. Mär 2008, 16:01
Zitat von Pif:
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?
Ich bekomme genau den gleichen Fehler.

Ich weiß nicht wie ich es beheben kann. Kann mir vielleicht einer helfen?
  Mit Zitat antworten Zitat
Marco Steinebach

 
Delphi 5 Enterprise
 
#16
  Alt 8. Apr 2008, 18:08
Hallo,
Zitat von Delphi Code Anfänger:
Zitat von Pif:
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?
Ich bekomme genau den gleichen Fehler.

Ich weiß nicht wie ich es beheben kann. Kann mir vielleicht einer helfen?
Ich kann's versuchen!
Was sagt denn die Indy hilfe, zum aufbau von OnWork, also wie sieht bei dir die Parameterliste aus?
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Marco Steinebach

 
Delphi 5 Enterprise
 
#17
  Alt 8. Apr 2008, 18:11
Hallo,
Es gibt eine neue Version, weil die Batch-Datei, nach einem direkten Update, nicht ordnungsgemäß gelöscht wurde.
Des weiteren heißt die Prozedur zum starten der Update-Suche, ganz nach Marco-Denglisch:
SucheNachUpdates.
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Marco Steinebach

 
Delphi 5 Enterprise
 
#18
  Alt 18. Apr 2008, 20:53
Hallo zusammen,
Es gibt, mal wieder, eine neue Version (1.00.5).
Neuerungen sind das Ereignis OnKeinUpdateGefunden, selbsterklärend und eine Prozedur Namens Neustart. Wenn nämlich der Neustart der Anwendung, nach einem Update, nicht gleich, sondern erst später durchgeführt werden soll, hatte man, vorher, ein Problem.

Viel Spaß damit und wie gesagt: für Kritiken und Anregungen bin ich jederzeit offen!
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von fylo
fylo

 
Delphi 7 Personal
 
#19
  Alt 27. Apr 2008, 00:29
Hallo,

da ich meine Updates auf einem SSL-Webserver liegen habe, hab ich deine Komponente um SSL-Fähigkeit erweitert.

Das notwendige OpenSSL-Update für Delphi/Indy gibt es hier.

Hier geänderte der Code:
Delphi-Quellcode:
uses
  ...,IdSSLOpenSSL;

TWebUpdate = class(TComponent)
  private
    { Private-Deklarationen }
    ...
    fSSLIOHandler: TIdSSLIOHandlerSocket;
    ...
end;

constructor TWebUpdate.Create;
begin
  ...
  fSSLIOHandler := TIdSSLIOHandlerSocket.Create(self);
  fSSLIOHandler.SSLOptions.Method := sslvSSLv3;
  fIdHTTP.IOHandler := fSSLIOHandler;
  ...
end;

procedure TWebUpdate.SetUpdateURL(const value: string);
begin
  ...
    if copy (UpperCase (fUpdateUrl), 1, 4) <> 'HTTPthen // <-- damit man auch https eingeben kann
      fUpdateURL := 'http://' + fUpdateURL;
  ...
end;
Das war's auch schon. Bei mir funktioniert das für meine Zwecke
  Mit Zitat antworten Zitat
Svenkan

 
Delphi 7 Enterprise
 
#20
  Alt 12. Mai 2008, 20:41
Gefällt mir schonmal ganz gut, aber ich hab 2 Probleme:

1. Ich lasse die Dateien in das Unterverzeichnis '\downloads' laden. Nachdem das Update-Programm geschlossen wird, werden diese Dateien allerdings nicht ins Hauptverzeichnis verschoben.
2. Fällt bei mir AWorkCount in den negativen Bereich. Da ich eigtl einen Fortschrittsbalken einbauen wollte, kann ich das erstmal vergessen, da mir negative Werte rein gar nichts bringen. Denn so kann es bei größeren Dateien schnell den Anschein haben, dass der Download steckengeblieben ist.
Sven Kannenberg
  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 10:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf