Updateprogramm
Updateprogramm
Hey leute,
Ich versuche mich an einem updateprogramm aber ich habe fast keine ahnung von fpc.
Das programm kann eine einfache konsolenanwendung sein, die vielleicht in einer txt datei aufm server die version checkt
und ein zip archiv downloadet und entpackt.
Aber ich bin wie gesagt noch ein neuling im bereich fpc mit internet.
Ich habe gehört sowas könnte mit synapse realisiert werden.
Ich versuche mich an einem updateprogramm aber ich habe fast keine ahnung von fpc.
Das programm kann eine einfache konsolenanwendung sein, die vielleicht in einer txt datei aufm server die version checkt
und ein zip archiv downloadet und entpackt.
Aber ich bin wie gesagt noch ein neuling im bereich fpc mit internet.
Ich habe gehört sowas könnte mit synapse realisiert werden.
Re: Updateprogramm
Kann man machen. Und was ist jetzt deine Frage?
Re: Updateprogramm
Wie man das macht.
ein codebeispiel oder so.
ich bin neuling in free pascal.
ein codebeispiel oder so.
ich bin neuling in free pascal.
-
- Beiträge: 144
- Registriert: So 22. Aug 2010, 16:06
- OS, Lazarus, FPC: Backtrack 5 RC4 - 64bit Gnome
- CPU-Target: 64bit
- Wohnort: NRW
- Kontaktdaten:
Re: Updateprogramm
Zunächst solltest du dir eine Komponente überlegen, ich empfehle HTTPSend.
Dann musst du dir überlegen, wie du dein Programm auf ein Update überprüfen willst.
Ich habe es mit dem Auslesen der eigenen Version und anschließendem Abgleich mit einer .conf Datei auf meinem Webserver gemacht.
Es gibt viele Möglichkeiten, ein "Updater" zu schreiben, Google hätte dir bestimmt gut geholfen.
Eigentlich bin ich nicht der Freund von Leuten, die sich alles aus der Nase ziehen lassen, bzw. direkt fertige Source-Codes wünschen und nicht selber denken.
Deswegen nur ein kleines Snippet
Grüße
Live
Dann musst du dir überlegen, wie du dein Programm auf ein Update überprüfen willst.
Ich habe es mit dem Auslesen der eigenen Version und anschließendem Abgleich mit einer .conf Datei auf meinem Webserver gemacht.
Es gibt viele Möglichkeiten, ein "Updater" zu schreiben, Google hätte dir bestimmt gut geholfen.
Eigentlich bin ich nicht der Freund von Leuten, die sich alles aus der Nase ziehen lassen, bzw. direkt fertige Source-Codes wünschen und nicht selber denken.
Deswegen nur ein kleines Snippet

Code: Alles auswählen
procedure checkupdate;
var t:Tstringlist;
vers : string;
upvers : string;
begin
with THTTPSend.Create do
begin
if HTTPMethod('GET', '') then
try
// Datei vom Server auslesen und 1. Zeile an upvers weitergeben.
t := TStringlist.Create;
t.LoadFromStream(Document);
vers:=GetFileVersion( ParamStr(0) );
upvers:=t.Strings[0];
if not(vers = upvers) then
begin
// Hier was machen, wenn Programmversion ungleich Updateversion
end
else
begin
// No Update;
end;
t.free
except
// Error Handling
end;
Free;
end;
end;
Live
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Updateprogramm
Netzwerkzugriff ist nicht das, womit man als Einsteiger anfangen sollte - zumindest nicht, wenn man halbwegs hochwertigen Code produzieren will.Ultrawipf hat geschrieben:Wie man das macht.
ein codebeispiel oder so.
ich bin neuling in free pascal.
Ansonsten ganz einfach überlegen:
Was musst du (als Programm) tun um dein Ziel zu erreichen. Dann jeden einzelnen Schritt programmieren und am Ende alles zusammenfügen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Updateprogramm
Grundsätzlich in den Updater sollte rein:
- eine Oberfläche (kannst du schon mal designen)
- eine HTTP- oder FTP-Komponente, um die Dateien herunterzuladen
- Ein Archivformat, ich könnte dir z.B. die Units von gwGroups geben, das ist eine .tar.gz-ähnliche Kompression
Zip und Rar tuns aber auch.
Der Rest vom Code ergibt sich:
- Versionsflag abfragen
- falls neue Version da: Nutzer nach Aktualisierung fragen
- Update herunterladen
- alte Dateien entfernen
- Update entpacken
- Erfolgsmeldung ausspucken
- eine Oberfläche (kannst du schon mal designen)
- eine HTTP- oder FTP-Komponente, um die Dateien herunterzuladen
- Ein Archivformat, ich könnte dir z.B. die Units von gwGroups geben, das ist eine .tar.gz-ähnliche Kompression

Der Rest vom Code ergibt sich:
- Versionsflag abfragen
- falls neue Version da: Nutzer nach Aktualisierung fragen
- Update herunterladen
- alte Dateien entfernen
- Update entpacken
- Erfolgsmeldung ausspucken
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Updateprogramm
Schwierigkeiten kann es noch bei den folgenden Punkten geben
* Redirection der http-Adresse
* Crossplattform Packer
* Entpacken im laufenden Betrieb
* extra Programm vs. Methode
* manueller Download
Ich fände es nicht schön, wenn ich ein Programm haben möchte, soll dann aber nicht xy.zip installieren sondern updater.exe. Deswegen sollte IMHO der Updater Teil des Programms sein, wodurch man zum Problem kommt, im laufenden Betrieb entpacken zu müssen. Unter Linux ist das kein Problem und unter Windows geht angeblich die Exe umzubennen (aus irgendwelchen Gründen klappt das bei mir nicht mehr). Allerdings muss sichergestellt werden, dass der Benutzer nicht schon manuell aktualisiert hat oder auch gar nicht aktualisieren will. Entpacker gibt es ausreichend, hier im Forum liegt ein Codeschnipsel für Zip, das ausgezeichnet funktioniert. Und mit Redirection meine ich die serverseitige Umleitung der http-Adresse, die manchmal möglichst umständlich erfolgt, um solche Updater zu vermeiden (gilt natürlich nur für http).
* Redirection der http-Adresse
* Crossplattform Packer
* Entpacken im laufenden Betrieb
* extra Programm vs. Methode
* manueller Download
Ich fände es nicht schön, wenn ich ein Programm haben möchte, soll dann aber nicht xy.zip installieren sondern updater.exe. Deswegen sollte IMHO der Updater Teil des Programms sein, wodurch man zum Problem kommt, im laufenden Betrieb entpacken zu müssen. Unter Linux ist das kein Problem und unter Windows geht angeblich die Exe umzubennen (aus irgendwelchen Gründen klappt das bei mir nicht mehr). Allerdings muss sichergestellt werden, dass der Benutzer nicht schon manuell aktualisiert hat oder auch gar nicht aktualisieren will. Entpacker gibt es ausreichend, hier im Forum liegt ein Codeschnipsel für Zip, das ausgezeichnet funktioniert. Und mit Redirection meine ich die serverseitige Umleitung der http-Adresse, die manchmal möglichst umständlich erfolgt, um solche Updater zu vermeiden (gilt natürlich nur für http).
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Updateprogramm
Ich antworte einfach mal anstelle von Ultrawipf:
Es handelt sich hier nur um den Windows-Updater, da dieses **** Betriebssystem ja bekanntlich keine Paketverwaltung hat.
Demzufolge müsste auch der Updater ein extra Programm sein.
Ich hab Ultrawipf das Forum hier empfohlen, um mit FPC und Lazarus zurechtzukommen.
Dass er jetzt von euch den gesamten Sourcecode vorgekaut haben will, finde ich ein bisschen dreist.
Zumal er hier auch nur erfährt, wie man das Problem löst und nicht wie man es konkret implementiert
Es handelt sich hier nur um den Windows-Updater, da dieses **** Betriebssystem ja bekanntlich keine Paketverwaltung hat.
Demzufolge müsste auch der Updater ein extra Programm sein.
Ich hab Ultrawipf das Forum hier empfohlen, um mit FPC und Lazarus zurechtzukommen.
Dass er jetzt von euch den gesamten Sourcecode vorgekaut haben will, finde ich ein bisschen dreist.
Zumal er hier auch nur erfährt, wie man das Problem löst und nicht wie man es konkret implementiert

Re: Updateprogramm
ich habe wie gesagt keine ahnung von free pascal...
ich muss das einfach erst lernen und vielleicht suchst du dir jemand anderen...
vb ist in ordnung aber fpc ist nicht mein ding.
ich muss das einfach erst lernen und vielleicht suchst du dir jemand anderen...
vb ist in ordnung aber fpc ist nicht mein ding.
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Updateprogramm
Aber wenn du Probleme hast, von VB nach FPC umzulernen, dann stellst du doch nicht so was als Frage ins Forum.
und VB ist wegen .NET ausgeschlossen.
und VB ist wegen .NET ausgeschlossen.
- af0815
- Lazarusforum e. V.
- Beiträge: 6762
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Updateprogramm
War da nicht vor EINIGER Zeit genau so ein Artikel, bezüglich Updates und wie man die mit Pascal macht, in der Toolbox ?!
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 22
- Registriert: Mi 19. Mai 2010, 07:23
Re: Updateprogramm
Hallo zusammen,af0815 hat geschrieben:War da nicht vor EINIGER Zeit genau so ein Artikel, bezüglich Updates und wie man die mit Pascal macht, in der Toolbox ?!
auch ich (als quasi Wiedereinsteiger) suche eine Update Komponente für mein kleines Progrämmchen.
Ich selber komme von der Datenbankseite und um so eine Komponente selber schreiben zu können fehlen wir einfach die nötigen (Netzwerk-)Grundlagen.
D.h. aber nicht, das ich zu faul bin mir das anzueignen, aber man kann nicht alles wissen...
Ich habe auch schon versucht die Internettools von http://www.benibela.de/sources_de.html#internettools zu verwenden, aber ich habe schon nicht das Beispiel Programm zum laufen gebracht. Es fehlte immer irgendeine Datei.
Nun möchte ich hier höflich Fragen, wo ich den besagten Artikel bekommen könnte (bin nämlich keine Abbonent

Viele Grüße aus Düsseldorf
Thomas
Re: Updateprogramm
Aussagen wie "Es geht nicht", "Es gibt einen Fehler" oder "Da fehlt was" bringen nichts, wenn dir geholfen werden soll.TKindermann hat geschrieben: Ich habe auch schon versucht die Internettools von http://www.benibela.de/sources_de.html#internettools zu verwenden, aber ich habe schon nicht das Beispiel Programm zum laufen gebracht. Es fehlte immer irgendeine Datei.
Welche Datei fehlt denn?
-
- Beiträge: 22
- Registriert: Mi 19. Mai 2010, 07:23
Re: Updateprogramm
Entschuldigung für die schlechte Beschreibung:
Fehlermeldung: Can't open include file "progressdialog.lrs"
Die Datei kann ich auch so leider nicht finden...
Fehlermeldung: Can't open include file "progressdialog.lrs"
Die Datei kann ich auch so leider nicht finden...
-
- Beiträge: 144
- Registriert: So 22. Aug 2010, 16:06
- OS, Lazarus, FPC: Backtrack 5 RC4 - 64bit Gnome
- CPU-Target: 64bit
- Wohnort: NRW
- Kontaktdaten:
Re: Updateprogramm
Ich habe mir die Komponenten mal heruntergeladen und im Ordner "internet" findet sich die Datei progressdialog.pas . Das sollte eigtl die richtige sein, sie ist ja auch in der autoupdate unit eingebunden.TKindermann hat geschrieben:Entschuldigung für die schlechte Beschreibung:
Fehlermeldung: Can't open include file "progressdialog.lrs"
Die Datei kann ich auch so leider nicht finden...
Code: Alles auswählen
interface
{$DEFINE showProgress}
uses
Classes, SysUtils, internetaccess,bbutils,simplexmlparser, dialogs, {$IFDEF showProgress}progressdialog{$ENDIF}
;
In progressdialog.pas
Code: Alles auswählen
initialization
{$I progressdialog.lfm}
end.
Code: Alles auswählen
24.09.2010 16:28 <DIR> .
24.09.2010 16:28 <DIR> ..
28.02.2010 15:56 16.179 autoupdate.pas
24.09.2010 16:28 <DIR> examples
22.09.2010 22:57 12.327 internetaccess.pas
25.09.2010 01:25 1.427 progressdialog.lfm
25.09.2010 01:25 1.648 progressdialog.pas
24.09.2010 14:23 6.910 synapseinternetaccess.pas
24.09.2010 15:26 19.147 w32internetaccess.pas
6 Datei(en) 57.638 Bytes
3 Verzeichnis(se), 80.004.059.136 Bytes frei