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/)
-   -   Programm Update?? (https://www.delphipraxis.net/132477-programm-update.html)

monXii 13. Apr 2009 22:21


Programm Update??
 
Ich stelle mir grad die Frage wie ich mein Programm am besten updaten kann..
es ist nicht groß.. das heißt es soll einfach immer komplett ersetzt werden! :)

Dachte mir das ich auf meiner homepage die aktuelle Version abfrage, mit der "aktuellen" Vergleiche
und bei einer differenz wird halt das neue heruntergeladen.. =)
Soweit so gut.. alles kein problem ^^

Aber wie krieg ich nun mein Programm beendet,
die heruntergeladene Datei umbenannt und wieder gestartet? ;)

Krieg ich das in meinem Programm gehandelt?
oder brauch ich ein kleines Update programm was ich dann aufrufen muss?

freak4fun 13. Apr 2009 22:22

Re: Programm Update??
 
Batch-Datei? :) Such doch einfach mal im Forum ...

monXii 13. Apr 2009 22:23

Re: Programm Update??
 
ja, so etwas wollte ich vermeiden :P
aber fürs erste ist es wirklich eine idee.. :)

mkinzler 13. Apr 2009 22:23

Re: Programm Update??
 
Am Besten mit Hilfe einer Batchdatei. Diese starten, Programm beenden, Batch löscht/benennt alte Exe um und lädt neue herunter, ggf Batch löscht sich selber bevor sie sich beendet

jaenicke 13. Apr 2009 22:41

Re: Programm Update??
 
Eine Möglichkeit bei einem kleineren Programm (bei größeren sollte es schon ein richtiger eigener Updater sein): Die eigene Exe ins Verzeichnis für temporäre Dateien kopieren, dort mit Adminrechten und den notwendigen Parametern fürs Updaten starten, dann die eigene Exe beenden.
Wenn dem Programm diese Parameter übergeben werden, dann aktualisiert es die Exe in das ursprüngliche Verzeichnis, benennt dann bei Erfolg die alte Exe um, nennt die neue Exe wie die alte und löscht dann die alte.
Am Ende startet das Programm dann noch die neue Exe mit dem Parameter die temporäre Exe zu löschen und beendet sich selbst. Die neue Exe wartet auf die Beendigung und löscht dann die temporäre Exe, fertig.

monXii 13. Apr 2009 22:45

Re: Programm Update??
 
das problem sind da nur die Adminrechte..
Kann ich nicht sicherstellen..
dann werde ich es wohl mit einer Batch lösen, auch wenn mir das DOS-Fenster etwas stört.. ^^
aber es ist ja nur millisekunden da.. :)

danke erstmal für die schnelle hilfe! ;)

jaenicke 13. Apr 2009 22:48

Re: Programm Update??
 
Die Batchdatei kannst du aber nicht mit Adminrechten starten und deshalb wird bei einem richtigen Programm, das unter c:\programme liegt, das nicht klappen (es sei denn man pfeift auf Sicherheit und arbeitet als Admin und unter Vista mit deaktivierter UAC, arbeitet also als Virensammler^^).

Wenn es sich natürlich um ein portables Programm ausschließlich für den USB-Stick handelt, dann brauchst du auch mit deinem Delphiprogramm keine Adminrechte.
Dann reicht es die eigene Exe während sie läuft umzubenennen, die neue an die Stelle zu setzen und diese mit dem Parameter zum Löschen der umbenannten alten zu starten.

Das wäre für ein normales Programm nicht für den USB-Stick aber Blödsinn, genauso wie eine Batchdatei.

mkinzler 14. Apr 2009 05:36

Re: Programm Update??
 
Man kann eine Batchdatei aber auch unsichtbar starten

jaenicke 14. Apr 2009 05:42

Re: Programm Update??
 
Trotzdem kann man das was eine Batchdatei kann auch viel komfortabler mit Delphi selbst lösen. ;-)

mkinzler 14. Apr 2009 06:34

Re: Programm Update??
 
Eine Exe kann sich halt nicht selber löschen, eine Batch schon


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.
Seite 1 von 2  1 2      

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