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/)
-   -   Update vom eigenem Programm.exe (https://www.delphipraxis.net/187105-update-vom-eigenem-programm-exe.html)

Luckner 28. Okt 2015 10:34

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

borncrush 28. Okt 2015 10:41

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 :-)

nahpets 28. Okt 2015 10:47

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

BUG 28. Okt 2015 10:49

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.

Luckner 28. Okt 2015 11:40

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.

Sir Rufo 28. Okt 2015 11:59

AW: Update vom eigenem Programm.exe
 
Zitat:

Zitat von Luckner (Beitrag 1319952)
Die Kombination von ShellExecute und Batchdatei wäre eine Möglichkeit. Kann ich mit xcopy feststellen welche Datei ist neuer?
Luckner.

Wozu? Prüfe in deinem Programm, ob das, was dort liegt neuer ist als das was du da hast. Wenn dem so ist, dann starte den Update-Vorgang und beende dich selber.

Captnemo 28. Okt 2015 12:05

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.

baumina 28. Okt 2015 12:07

AW: Update vom eigenem Programm.exe
 
Man könnte die exe auch einfach vom Server starten, statt sie auf jeden PC zu legen.

Captnemo 28. Okt 2015 12:11

AW: Update vom eigenem Programm.exe
 
Zitat:

Zitat von baumina (Beitrag 1319962)
Man könnte die exe auch einfach vom Server starten, statt sie auf jeden PC zu legen.

Das könnte man machen. Aber dann hat man das Problem, dass wenn sie ersetzt werden soll, kein Zugriff mehr darauf vorhanden sein darf. Und je nach Nutzungsverhalten kannst du dann als Admin ewig warten, bis die mal frei ist.

HolgerX 28. Okt 2015 12:13

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:
if FileAge(ParamStr(0)) < FileAge(UpdateFilepathName) then begin
  ExecuteUpdate(UpdateFilepathName);
  Halt;
end;
Im 'ExecuteUpdate(' wird dann die Batsch-Datei im Temp-Folder erstellt und wie oben geschrieben mit ShellExecute gestartet.

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 11:45 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