Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Firemonkey-Anwedung aktualisieren? (https://www.delphipraxis.net/203316-firemonkey-anwedung-aktualisieren.html)

JensM 5. Feb 2020 12:03

Firemonkey-Anwedung aktualisieren?
 
Hallo,
ich hätte da mal ne Frage. Ist es in Delphi(10.3) möglich eine Firemonkey Anwendung zu aktualisieren. Also die App soll beim öffnen nachgucken ob eine neue Version verfügbar ist .(beispielweise: Kommunikation mit einem Server). Wie könnte sowas umgesetzt werden, hätte da jemand eine Idee.

Vielen Dank im voraus :D

himitsu 5. Feb 2020 12:26

AW: Firemonkey-Anwedung aktualisieren?
 
Ob FMX, VCL oder Sonstwas ist egal.

Hier in der DP hatte auch mal jemand eine Updater-Komponente bereitgestellt, welche soeine Funktion bietet.


Im Grunde:
  • gucken ob Update vorhanden
  • runterladen
  • im TempVerzeichnis eine Updater-EXE oder Batch (BAT/CMD oder Dergleichen) starten
  • das wartet nun etwas (bis siehe nachfolgend)
  • dein Programm beenden (danach kann deine EXE nun ersetzt werden)
  • Updaten
  • das Programm wieder starten
  • Updater beenden
  • eine Batch kann nicht selbst löschen (als letzen Befehl "del %0")
  • eine EXE kann sich nicht selber löschen
    • entweder bleibt die drin, bis jemand TEMP aufräumt
    • das neu gestartete Programm löscht den Updater
    • oder beim nächsten Rechnerstart löschen
      • MSDN-Library durchsuchenMoveFileEx mit MOVEFILE_DELAY_UNTIL_REBOOT
      • eine der kleinen Apps ala "delete file on boot"
      • HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations (das nutzt MoveFileEx und hoffentlich auch die komischen kleinen Apps)
      • HKLM\SOFTWARE\Microsoft\Windows\Currentversion\Run Once (cmd del)
      • eine Batch, die die EXE löscht und dann sich selbst
      • oder oder oder

In Android und dergleichen gibt es den AppStore, welchem man auch sagen kann, dass er deine App jetzt updaten soll

philipp.hofmann 5. Feb 2020 12:31

AW: Firemonkey-Anwedung aktualisieren?
 
Wichtig ist dabei noch die Verteilungsart. Je nach OS (Android/FireOS/Windows/iOS/MacOS) kannst du die Verteilung ja über die jeweiligen App-Stores machen und dann passiert dies ganz von alleine. Dies geht nur bei Linux nicht ganz so einfach.

Ich mache es daher so, dass ich die Versionsnummern (eine für die App-Version und eine für die Dokumentation) in einer kleinen XML-Datei per https herunterlade und dann mit den aktuell installierten Versionen vergleiche und dann bei neueren App-Versionen auf den jeweiligen App-Store verlinke (und im Windows-Fall die Installer-Datei herunterladen lasse, da ich dort nicht über den AppStore gehe und dann läuft es genauso wie von himitsu beschrieben). Dies dient aber nur der Sicherheit, damit ich nicht davon abhängig bin, ob der Anwender alles über den AppStore automatisch aktualisieren lässt oder nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 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