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? |
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 |
Re: eigene Anwendung und/oder Windows neustarten
Der Service started einen Service der den Service nach X Secunden neu started. :mrgreen:
|
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?
|
Re: eigene Anwendung und/oder Windows neustarten
Zitat:
Natürlich soll das dann vom Clienten aus geschehen, aber es geht mir ja nur um die Routinen. |
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.
|
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. |
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 |
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; |
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: ExitWindowsEx.
|
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