Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Updatefunktion Regeln?! (https://www.delphipraxis.net/40329-updatefunktion-regeln.html)

SKolberg 14. Feb 2005 14:06


Updatefunktion Regeln?!
 
Hallo noch eine frage. Wie kann ich es realisieren das beim start meiner anwendung diese die aktuelle Version auslist,
überprüft ob in pfad "xxx" eine neuere version vorhanden ist und sie gegebenfalls schliesst und die alten dateien updatet.

Gedacht habe ich mir das ungefähr so:

1. Versteckter Button oder Hotkey um Updatepfad festzulgen, ggf. ftp oder http server. vorerst aber nur im Netzwerk.
2. Programmstart -> ME=Ver. 0.0.5 -> Update verfügbar auf Pfad "xx"? -> Ja! -> Mitteilung an den Benutzer das ein Update verfügbar ist,
(nach klick auf OK wird update gestartet) -> Programm schliesst sich und startet exe/modul für update und erstezt die alten dateien
-> Meldung das update erfolgreich war Info: Alte und Neue Version -> Klick auf OK schliesst das Update und Startet erneut die Anwendung.


Vielen Dank im voraus, Steve

Jasocul 14. Feb 2005 14:21

Re: Updatefunktion Regeln?!
 
Ich habe das mit einer Anwendung wie folgt gelöst:
Es wird ein Start-Programm verwendet.
Dieses vergleicht die Version des Clients mit der des Servers.
Wenn es eine neuere auf dem Server gibt, wird diese auf den Client kopiert.
Danach wird die Version auf dem Client gestartet und das Start-Programm beendet sich.

SKolberg 14. Feb 2005 14:29

Re: Updatefunktion Regeln?!
 
in welcher weise funktioniert das startprogramm?

man startet es und es kommt ein splashscreen?, wobei im hintergrund die version überprüft wird, wenn ja muss ich als "administrator" aber die möglichkeit haben den updatepfad festzulegen z.b. mit einem hotkey wärend des startens...

MathiasSimmack 14. Feb 2005 14:31

Re: Updatefunktion Regeln?!
 
Würde ich auch so machen. Vllt. auf dem Server eine Liste ablegen (XML, wenn du kannst und willst), die die Namen und die aktuellen Versionsnummern bzw. die Prüfsummen enthalten. Dein Updateprogramm liest die Prüfsummen aus und erstellt von der installierten Version eine, vergleicht beide Werte und löst ggf. das Update aus. Nur nach Versionsnummern würde ich nicht gehen. Einmal in einer Komponente (DLL, Resourcendatei in Binärformat ohne Versionsinfo) vergessen, und das Updateprogramm weiß nicht was es tun soll.

Falls die Datei nicht ersetzt werden kann, oder falls sich das Updatetool auch mal selbst updaten muss, kannst du eine pending file operation ins System setzen. sakura hatte mal eine Funktion zum Löschen von benutzten Dateien vorgestellt. Die wurden nach dem Neustart gelöscht. Mit dem Umbenennen bzw. dem Einspielen einer neuen Version sollte das genauso klappen. In dem Fall zeigst du eine Box an, dass ein Neustart fällig ist, und gut.

Jasocul 14. Feb 2005 14:33

Re: Updatefunktion Regeln?!
 
Zitat:

Zitat von SKolberg
in welcher weise funktioniert das startprogramm?

man startet es und es kommt ein splashscreen?, wobei im hintergrund die version überprüft wird, wenn ja muss ich als "administrator" aber die möglichkeit haben den updatepfad festzulegen z.b. mit einem hotkey wärend des startens...

Ja, mit SplashScreen.
Ich habe die notwendigen Informationen in einer INI-Datei hinterlegt. Sollte die unvollständig sein, wird ein Einstellungs-Dialog aufgerufen.

SKolberg 14. Feb 2005 14:47

Re: Updatefunktion Regeln?!
 
die ideen sind sehr interessant allerdings habe ich ein problem damit die ver. infos in dateien zu hinterlegen,
zwecks manipulation, da die software in meiner firma eingesetzt werden soll. daher möchte ich schon versuchen,
diesen dialog zur konfiguration irgendwie in die exe zu hinterlegen welche auch nur durch den hotkey ausgelöst werden kann bzw.
wenn jemand durch ich sage mal "zufall" den hotkey entdeckt nicht ohne passwort einstellungen einsehen oder ändern kann. zumal diese updates in geraumer zeit auch auf einem ftp liegen sollen und nicht jeder gleich die zugangsdaten lesen soll.

1. Versionsnummer mit Delphi direkt in die .EXE schreiben..
2. Seperates Programm welches als "Starter" fungiert nutzen,
wenn während des startens zb. Strg+Shift+C gedrückt wird kommt eine passwortabfrage,
wenn richtig dann Form mit:
- Server (TCP/IP, FTP, HTTP)
- Pfad (\\Sofware\Update\)
- Username
- Passwort

ich weiss das klingt vielleicht etwas kompliziert, aber falls es so klappen sollte lohnt sich die mühe hoffentlich...

Danke

Jasocul 14. Feb 2005 14:55

Re: Updatefunktion Regeln?!
 
Die Versions-Info kannst du im Datum der Datei verschlüsseln. Du wärst nicht de rerste, der es so macht. M$ hat es auch schon so gemacht.
Ich habe auch schon gesehen, dass man die Versions-Info der EXE auslesen kann. Habe ich aber noch nicht probiert.
Die Sache mit dem HotKey kannst du noch dadurch verschärfen, dass dieser nur solange wirksam ist, wie der SplashScreen angezeigt wird (nur so zum Beispiel).
Alles andere müsste sich so lösen lassen, wie du dir das vorstellst.

MathiasSimmack 14. Feb 2005 14:55

Re: Updatefunktion Regeln?!
 
Zitat:

Zitat von SKolberg
wenn jemand durch ich sage mal "zufall" den hotkey entdeckt nicht ohne passwort einstellungen einsehen oder ändern kann. zumal diese updates in geraumer zeit auch auf einem ftp liegen sollen und nicht jeder gleich die zugangsdaten lesen soll.

Hast du keine Webseite (HTTP) zur Verfügung? Dann brauchst du kein Passwort. Oder speichere die FTP-Zugangsdaten verschlüsselt in der Exe ab, so dass sie nicht geändert oder gelesen werden können. Einfach eine Crypt-Routine verwenden und die "zerhackten" Strings als Konstanten in der Exe ablegen und beim Start mit der entsprechenden Decrypt-Funktion wieder in Klartext umwandeln. :)

MathiasSimmack 14. Feb 2005 14:57

Re: Updatefunktion Regeln?!
 
Zitat:

Zitat von Jasocul
Ich habe auch schon gesehen, dass man die Versions-Info der EXE auslesen kann. Habe ich aber noch nicht probiert.

Ist simpel, aber eben fehleranfällig. Wenn irgendeine Datei keine solche Info hat, weiß der Updater nicht was er mit ihr machen soll. Und das würde bspw. Readmes, PDFs oder Hilfedateien (HLP, CHM) betreffen. Oder allgemein irgendwelche eigenen Dateiformate für Ressourcen usw. Darum ja auch der Vorschlag, eine Prüfsumme zu generieren. Man kann ja hoffentlich voraussetzen, dass der Entwickler nur neue Versionen auf den Server packt. :)

Jasocul 14. Feb 2005 15:01

Re: Updatefunktion Regeln?!
 
@MathiasSimmack:
Eine Möglichkeit wäre noch das Datei-Datum. Ist aber vom End-Anwender auf dem Client manipulierbar.
Mal sehen wie SKolberg das dann lösen wird. :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz