AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Nach Programm Ende noch eine Andwendung ausführen ??
Thema durchsuchen
Ansicht
Themen-Optionen

Nach Programm Ende noch eine Andwendung ausführen ??

Ein Thema von Luke_83 · begonnen am 24. Mai 2007 · letzter Beitrag vom 29. Mai 2007
Antwort Antwort
Luke_83

Registriert seit: 22. Mai 2007
Ort: Rödermark
32 Beiträge
 
Delphi 7 Professional
 
#1

Nach Programm Ende noch eine Andwendung ausführen ??

  Alt 24. Mai 2007, 20:16
Hallo wollte mal fragen ob es möglich ist, wenn man sein eigenes Delphi Programm beendet hat noch eine Kopierfunktion aufzurufen. Bräuchte diese für eine Update Funktion.

Und zwar läßt sich das Hauptprogramm über einen Server Dwonloaden. Danach muss die alte Version ersetzt werden und da haberts momentan.

Schonmal vielen Dank für die Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Nach Programm Ende noch eine Andwendung ausführen ??

  Alt 24. Mai 2007, 20:19
Hi,

das geht meines Wissens nicht. Du kannst jedoch eine zweite kleine Anwendung schreiben, die du am Ende aufrufst und die dann wartet, bis sich das Hauptprogramm geschlossen hat und dieses dann durch eine aktuelle Version ersetzt.
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Nach Programm Ende noch eine Andwendung ausführen ??

  Alt 24. Mai 2007, 20:20
kannst du über eine Batch-Datei machen oder ne 2te exe die wartet bis altes programm geschlossen und dann kopiert
Dominik
  Mit Zitat antworten Zitat
Luke_83

Registriert seit: 22. Mai 2007
Ort: Rödermark
32 Beiträge
 
Delphi 7 Professional
 
#4

Re: Nach Programm Ende noch eine Andwendung ausführen ??

  Alt 25. Mai 2007, 09:55
Gut Danke. Ist zwar etwas umständlich mit dem externen Programm aber es funktioniert immerhin , so wie ich mir gedacht habe.
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Nach Programm Ende noch eine Andwendung ausführen ??

  Alt 25. Mai 2007, 10:03
Meine Methode für n Update:

Erstmal "besorge" ich mir die neue version (Exename.new).
Dann benenne ich meine EXE (exename.exe) in exename.bak um (sicher is sicher).
Nun benenne ich meine neue Version (exename.new) in exename.exe um.
Zuletzt beende und neustarte ich meine Anwendung....

EDIT:
ich mach mal "meine" neustartprocedure rinn ... könnte hilfreich sein
Delphi-Quellcode:
procedure ForceKillApplication(ARestart: boolean = False);
var
  AStartInfo: TStartupInfo;
  AProcInfo: TProcessInformation;
begin
  if ARestart then
  begin
    GetStartupInfo(AStartInfo);
    FillChar(AProcInfo, SizeOf(TProcessInformation), #0);
    CreateProcess(nil, GetCommandLine, nil, nil, False,
      CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS, nil,
      PChar(GetCurrentDir), AStartInfo, AProcInfo);
  end;
  TerminateProcess(GetCurrentProcess, 1);
end;
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

Re: Nach Programm Ende noch eine Andwendung ausführen ??

  Alt 25. Mai 2007, 10:18
Und das, was Ihr da macht, klappt alles unter Vista mit UAC?

Ich mach das so:
1) Prüfen auf Updates per HTTP (am einfachsten insbesondere wg. Rechten, Firewall etc!)
2) Download in das Temp-Verzeichnis des aktuellen Benutzers unter einem nicht vergebenen Namen mit Prefix (Anwendungxyz-Update-123.exe), natürlich Hash-Vergleichen
3) Hilfsprogramm mit den Parametern aufrufen, die Pfad zum Update und aufrufenden Hauptprogramm enthalten
4) ShellExecute + Wait für das Update mit Elevation-Anforderung (tauscht Dateien im Programmeverzeichnis aus)
5) Update-EXE löschen, wenn möglich (wollen das Temp des Benutzers ja nicht zumüllen)
6) Hauptprogramm erneut starten

Inkl. Fallback, falls das Hilfsprogramm nicht gefunden wird (wird direkt Update aufgerufen mit Hinweis auf manuellen Programmneustart). Zusätzlich hab ich eine Benachrichtigung drin (Tray bzw. Messagebox für Win9x) und einen Update-Wizard mit Fehlerprüfung (Download-Abbruch, Verbindungsfehler, Hash-Fehler) und Informationen (je nach System und Verbindung mit Progressbar, Marquee oder Marquee-Simulation für ältere Systeme) etc.pp.

Viel bequemer geht es für den Benutzer nicht.

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Nach Programm Ende noch eine Andwendung ausführen ??

  Alt 25. Mai 2007, 11:58
Zitat von winkel79:
Und das, was Ihr da macht, klappt alles unter Vista mit UAC?
Nicht die geringste Ahnung (weilichnichhab).... aber war ja auch nicht gefragt

Zitat von winkel79:
Viel bequemer geht es für den Benutzer nicht.
Da kann meine Version locker mithalten
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#8

Re: Nach Programm Ende noch eine Andwendung ausführen ??

  Alt 25. Mai 2007, 13:11
Zitat von TeronG:
Zitat von winkel79:
Viel bequemer geht es für den Benutzer nicht.
Da kann meine Version locker mithalten
Unter Vista never.

Da scheiterts bei aktivem UAC wg Virtualisierung schon beim umbenennen und am Ende vom Update startest du die gleiche Version wie vorher. Ergo: Loop.
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Nach Programm Ende noch eine Andwendung ausführen ??

  Alt 29. Mai 2007, 07:31
Zitat von Nuclear-Ping:
Unter Vista never.
Werde nicht wagen dir zu wiedersprechen ... aber bis wir Vista haben (oder der Author es verlangt) funtzt es so bei mir auch ohne 2t EXE.
Eine 2te EXE währe natürlich auch eine schöne und einfach zu realisierende Sache allerdings müsste man auch da erstmal gugn wie es in der Praxis klappt (Schreibrechte, ...)
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:02 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