Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi eigene Anwendung und/oder Windows neustarten (https://www.delphipraxis.net/98828-eigene-anwendung-und-oder-windows-neustarten.html)

axelf98 2. Sep 2007 11:41


eigene Anwendung und/oder Windows neustarten
 
Hallo,
ich schreibe gerade ein Serverprogramm, dass sich auch selber neustarten können soll, genauso wie Windows aus der Ferne rebooten soll. Wie kann man das am geschicktesten umsetzen?

arbu man 2. Sep 2007 11:45

Re: eigene Anwendung und/oder Windows neustarten
 
Es könnte Sinnvoll sein einen 2ten Server zum Neustarten zu erstellen um deinen Server auch Neustarten zu können wenn er abgestürzt ist. Natürlich musst du auch prüfen ob der User die Rechte zum Neustart hat.

mfg, Björn

turboPASCAL 2. Sep 2007 11:46

Re: eigene Anwendung und/oder Windows neustarten
 
Der Service started einen Service der den Service nach X Secunden neu started. :mrgreen:

SirThornberry 2. Sep 2007 11:47

Re: eigene Anwendung und/oder Windows neustarten
 
ist es denn wirklich notwendig das dein Programm geschlossen und neu gestartet wird? Genügt es nicht wenn du im Programm alles frei gibst und neu erstellst?

axelf98 2. Sep 2007 11:51

Re: eigene Anwendung und/oder Windows neustarten
 
Zitat:

Zitat von SirThornberry
ist es denn wirklich notwendig das dein Programm geschlossen und neu gestartet wird? Genügt es nicht wenn du im Programm alles frei gibst und neu erstellst?

Der Server ist nur für mein Programm zuständig. Sollte es mal Probleme geben, sollte man einfach robooten können, weil dann niemand mehr an den Server gehen soll. Der hat auch keinen Monitor.
Natürlich soll das dann vom Clienten aus geschehen, aber es geht mir ja nur um die Routinen.

Olli 2. Sep 2007 16:50

Re: eigene Anwendung und/oder Windows neustarten
 
Matti's Lösung gefällt mir am besten, denn das würde es ermöglichen, daß der Service (Zusammenhang: Service <-> Server) neu gestartet wird. Und zur Not eben einen Watchdog-Service dessen Sinn und Zweck es ist den Hauptservice neuzustarten.

axelf98 2. Sep 2007 19:59

Re: eigene Anwendung und/oder Windows neustarten
 
Zum Neustarten wirds wohl ein ShellExec-Aufruf mit

C:\Windows\System32\Shutdown.exe -r -t 01

werden. Bedeutung: Neustarten in einer Sekunde und alle Prozesse werden gekillt.

Olli 2. Sep 2007 20:07

Re: eigene Anwendung und/oder Windows neustarten
 
Wobei man das in einer Schleife so schön machen könnte ... naja:

http://www.delphipraxis.net/internal...ect.php?t=6983

axelf98 2. Sep 2007 20:34

Re: eigene Anwendung und/oder Windows neustarten
 
Und die eigene Anwendung neustarten klappt so ganz gut:

Delphi-Quellcode:
procedure ProgrammRestart;
begin
     ShellExecute( 0, 'Open', pchar(Application.Exename),'' ,pChar(programmpfad),SW_SHOW);
     Application.Terminate;
end;

Luckie 2. Sep 2007 20:56

Re: eigene Anwendung und/oder Windows neustarten
 
@Axel: Wir reden hier von einem Service, keiner normalen Anwendung. Und deine Lösung, um Windows neuzustarten ist auch nicht die beste. Besser wäre die entsprechende API-Funktion zu nutzen: MSDN-Library durchsuchenExitWindowsEx.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:59 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