![]() |
Update vom eigenem Programm.exe
Hallo,
da mittlerweile das Tool auf ca. 10 Rechnern (Windows) in unseren Firma läuft und immer wieder erweitert bzw. korrigiert wird, wollte ich mir langsam das manuelle Kopieren und Ersetzen der Programm.exe auf den PC's sparren. Die Laufwege sind schon erheblich und man wird nicht jünger. Habe auf einem Server ein Unterverzeichnis '\Programmupdate\Programm.exe' und diese wird auf allen Pc's kopiert. Jetzt würde ich das mit einer Routine in meinem Tool bewerkstelligen. Es handelt es sich immer um 1 exe-Datei, die dann als Hinweis mit neuem Erstelldatum versehen ist. Mit welchen Delphi-Komponenten könnte ich dieses Kopieren und nach Datum überprüfen der Datei bewältigen? Der Pfad für das Update wäre vorgegeben und der Anwender soll nur 'ja/nein' wählen können. Wobei 'ja' fast ein muß wäre. Wenn eine Exe-Datei gerade im System läuft läßt die sich ohne weiteres ersetzen? Danke für ein paar Hinweise. Luckner |
AW: Update vom eigenem Programm.exe
Naja, eigentlich nicht, weil sie ja verwendet wird.
Programmiere doch ein eine extra EXE, die vorher auf Updates prüft und eben die EXE bei Bedarf austauscht. Der User startet das Vorschaltprogramm....dies prüft auf Updates, wenn ja, updaten, wenn nicht, normale EXE starten. Quick and Dirty :-) |
AW: Update vom eigenem Programm.exe
Hab' vor Jahren mal sowas mit der Methode "billig" gemacht.
Aus dem Programm wird eine Batchdatei erstellt und diese wird per ShellExecute aufgerufen. Die Batchdatei könnte (in etwa) so aussehen:
Code:
:REM gibt eine Pause von ca. 4 Sekunden, in der Zeit kann sich das Programm beenden.
ping 127.0.0.1 >nul :REM Programm kopieren copy \Programmupdate\Programm.exe Programm.exe :REM Programm starten Programm.exe :REM Die Batchdatei loescht sich selbst del %0 |
AW: Update vom eigenem Programm.exe
Mhm, das Thema gab es hier auch schon öfter. Eine andere übliche Lösung war es afaik, dass das alte Programm das neue, heruntergeladene aufruft und sich dann beendet. Das neue Programm löscht das alte und benennt sich um.
|
AW: Update vom eigenem Programm.exe
Die Kombination von ShellExecute und Batchdatei wäre eine Möglichkeit. Kann ich mit xcopy feststellen welche Datei ist neuer?
Luckner. |
AW: Update vom eigenem Programm.exe
Zitat:
|
AW: Update vom eigenem Programm.exe
ich habe das früher in einem Projekt so gemacht, dass ich neben die neue Exe-Datei noch eine Textdatei gelegt habe, die die neue Versionsnummer beinhaltet.
Ich habe also im Programm beim User zu erst nur die Textdatei geladen und die Versionnr mit der eigenen verglichen, und wenn höher dann halt neue Exe herunterladen starten, eigene beenden, und anschließend umbennen. Wenn nicht höher, dann halt Programm normal laufen lassen. Wobei ich das über FTP gemacht hatta und nicht über eine Serverfreigabe. |
AW: Update vom eigenem Programm.exe
Man könnte die exe auch einfach vom Server starten, statt sie auf jeden PC zu legen.
|
AW: Update vom eigenem Programm.exe
Zitat:
|
AW: Update vom eigenem Programm.exe
Ich glaube, das mit der Batch hast ein bischen falsch verstanden..
Nicht die Batch prüft auf neuer, sondern diese führt nur das eigentliche herunterkopieren durch. das Prüfen erfolgt z.B. mit
Delphi-Quellcode:
Im 'ExecuteUpdate(' wird dann die Batsch-Datei im Temp-Folder erstellt und wie oben geschrieben mit ShellExecute gestartet.
if FileAge(ParamStr(0)) < FileAge(UpdateFilepathName) then begin
ExecuteUpdate(UpdateFilepathName); Halt; end; Dann muss deine aktuell laufende Exe nur beendet (Halt) werden. Die Batch-Datei lädt dann die neue Exe herunter ersetzt die alte und startet diese dann wieder. Edit: Blubber.. Brauch nen neues Keyboard.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr. |
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-2025 by Thomas Breitkreuz