AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Update vom eigenem Programm.exe

Ein Thema von Luckner · begonnen am 28. Okt 2015 · letzter Beitrag vom 28. Okt 2015
Antwort Antwort
Seite 1 von 2  1 2      
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#1

Update vom eigenem Programm.exe

  Alt 28. Okt 2015, 11:34
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

Geändert von Luckner (28. Okt 2015 um 11:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von borncrush
borncrush

Registriert seit: 18. Dez 2005
Ort: Berlin
115 Beiträge
 
Delphi XE7 Enterprise
 
#2

AW: Update vom eigenem Programm.exe

  Alt 28. Okt 2015, 11:41
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
Delphi programming
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Update vom eigenem Programm.exe

  Alt 28. Okt 2015, 11:47
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
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: Update vom eigenem Programm.exe

  Alt 28. Okt 2015, 11:49
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.
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Update vom eigenem Programm.exe

  Alt 28. Okt 2015, 12:40
Die Kombination von ShellExecute und Batchdatei wäre eine Möglichkeit. Kann ich mit xcopy feststellen welche Datei ist neuer?
Luckner.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Update vom eigenem Programm.exe

  Alt 28. Okt 2015, 12:59
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#7

AW: Update vom eigenem Programm.exe

  Alt 28. Okt 2015, 13:05
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.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Update vom eigenem Programm.exe

  Alt 28. Okt 2015, 13:07
Man könnte die exe auch einfach vom Server starten, statt sie auf jeden PC zu legen.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#9

AW: Update vom eigenem Programm.exe

  Alt 28. Okt 2015, 13:11
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.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
970 Beiträge
 
Delphi 6 Professional
 
#10

AW: Update vom eigenem Programm.exe

  Alt 28. Okt 2015, 13:13
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....

Geändert von HolgerX (28. Okt 2015 um 13:15 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 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