AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Beenden, Delete, rename, Run hintereinander ohne Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

Beenden, Delete, rename, Run hintereinander ohne Fehler

Ein Thema von thomas2009 · begonnen am 4. Mär 2009 · letzter Beitrag vom 4. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
thomas2009
(Gast)

n/a Beiträge
 
#1

Beenden, Delete, rename, Run hintereinander ohne Fehler

  Alt 4. Mär 2009, 11:09
Hallo

nachdem Download von Update muss ich folgendes machen :

1- Die Anwendung schießen (Die Anwendung schließt sich selbst, wenn die Datei neu.exe gefunden wird)
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if FileExists(ExtractFilePath(Application.ExeName)+'neu.exe') then Mainform.Close;
2- Die Anwendung löschen (durch eine andere Anwendung heisst Liveupdate.exe)
3- die herunterladende Datei (neu.exe) umbenennen
4- Die Anwendung ausführen

das mache ich fast alle zusamen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
DeleteFile('programm.exe');
sleep(1000);
RenameFile('neu.exe', 'programm.exe');
sleep(1000);
shellexecute(1,'open','"programm.exe"','','',SW_show);
Form1.Close;
end;
Es geht aber vielleicht gibt was alternativ, da könnte es sein dass das nicht klappt und besonderes, wenn die
Anwendung nicht rechtzeitig geschlossen wird
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Beenden, Delete, rename, Run hintereinander ohne Fehler

  Alt 4. Mär 2009, 11:14
Was Du da aufrufst, sind Funktionen mit Rückgabewert, den muss man nur auswerten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#3

Re: Beenden, Delete, rename, Run hintereinander ohne Fehler

  Alt 4. Mär 2009, 11:15
programm.exe ist die anwendung selbst?

wenn ja, dann wird programm.exe nie beendet sein, bevor diese Befehle ausgeführt sind.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#4

Re: Beenden, Delete, rename, Run hintereinander ohne Fehler

  Alt 4. Mär 2009, 11:16
Zitat von DeddyH:
Was Du da aufrufst, sind Funktionen mit Rückgabewert, den muss man nur auswerten.
was willst Du damit sagen ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Beenden, Delete, rename, Run hintereinander ohne Fehler

  Alt 4. Mär 2009, 11:17
Zitat von thomas2009:
2- Die Anwendung löschen (durch eine andere Anwendung heisst Liveupdate.exe)


[edit] @Thomas: DeleteFile gibt Dir z.B. zurück, ob die datei gelöscht werden konnte, d.h. bei einem Fehler könntest Du hier die weitere Verarbeitung abbrechen. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#6

Re: Beenden, Delete, rename, Run hintereinander ohne Fehler

  Alt 4. Mär 2009, 11:17
Zitat von himitsu:
programm.exe ist die anwendung selbst?

wenn ja, dann wird programm.exe nie beendet sein, bevor diese Befehle ausgeführt sind.
Ja natürlich
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#7

Re: Beenden, Delete, rename, Run hintereinander ohne Fehler

  Alt 4. Mär 2009, 11:19
Zitat von thomas2009:
was willst Du damit sagen ?
DeleteFile und RenameFile sagen dir, ob sie erfolgreich waren
und das Sleep ist sinnlos, da sie solange nicht zurückkehren, bis sie fertig sind (egal ob gelösch/umbenannt oder nicht)


[add]
Delphi-Quellcode:
var exit: Boolean = false; // auf true setzen um schleife abzubrechen

procedure TForm1.Button1Click(Sender: TObject);
begin
  while not DeleteFile('programm.exe') and not Exit do
    sleep(50);
  it not RenameFile('neu.exe', 'programm.exe') then
    Fehler('Datei nicht umbenannt');
  if shellexecute(1,'open','"programm.exe"','','',SW_show) < 32 then
    Fehler('programm nicht gestartet');
  Form1.Close;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#8

Re: Beenden, Delete, rename, Run hintereinander ohne Fehler

  Alt 4. Mär 2009, 11:30
d.h. solang die Schritt 1 noch nicht fertig ist, machr das Programm die 2. Schritt nicht
Wenn so, dann ist kein Problem mehr
Ich muss dann nur auspassen, dass die Anwendung geschlossen werden muss, sonst gehen alle 4 Schritte in die Hose
Delphi-Quellcode:
var
hWordWindow: HWND;
begin
hWordWindow := FindWindow (nil,'Programm-Titel');
SendMessage (hWordWindow, WM_CLOSE, 0, 0);// schritt 1 (gibt mir auch was zurück oder nicht ? ?

DeleteFile('programm.exe'); //Schritt 2
RenameFile('neu.exe', 'programm.exe'); //Schritt 3
shellexecute(1,'open','"programm.exe"','','',SW_show); //Schritt 4
Form1.Close;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Beenden, Delete, rename, Run hintereinander ohne Fehler

  Alt 4. Mär 2009, 11:31
Ich würde die Variable aber nicht gerade Exit nennen.

[edit] @Thomas: Und wo wertest Du jetzt die Funktionen aus? [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#10

Re: Beenden, Delete, rename, Run hintereinander ohne Fehler

  Alt 4. Mär 2009, 12:44
Zitat von DeddyH:
Ich würde die Variable aber nicht gerade Exit nennen.

[edit] @Thomas: Und wo wertest Du jetzt die Funktionen aus? [/edit]
Es ist nicht nötig oder
Ich meine, es gibt keiner dass das Programm verhindert die Datei zu löschen oder zu umbenennen
Firewall kann nicht als Täter sein oder ?
Welcher Probleme könnten auftauchen
  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 04:10 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