![]() |
Neustarten
Gibt es in Delphi die Mgl. (z.B. mit WatchDogTimer o.ä.), dass sich ein Programm selbst neustartet, wenn es z.B. aufgehängt ist?
|
Re: Neustarten
Wenn ein Programm hängt, kriegt es das ja gar nicht mit, eben weil es hängt. Wie soll es sich da neu starten?
|
Re: Neustarten
Nein. Eine Anwendung kann sich ohne eine andere Anwendung nicht neustarten, da sie ja zum neustarten erstmal geschlossen wird und sich dann natürlich dann nicht wieder selber ausführen kann. Aber du könntest erst die Anwendung nochmal starten und dann die alte Instanz schließen:
Delphi-Quellcode:
if Integer(ShellExecute(Form1.Handle, 'open', PChar(ExtractFilePath(Application.ExeName)+'zweite.exe'), nil, nil, SW_SHOWNORMAL))>32 then
Application.Terminate; |
Re: Neustarten
es kommt darauf an, wie es hängt ...
man könnte einen Thread erstellen, welcher die Funktion überwacht, (hier mußt aber sichergestellt sein, daß der Wachtread nicht durch irgendwas der restlichen Anwendung blokiert werden kann) dieser startet eine neue Instant und Killt danach den eigenen Thread (oder über einen Parameter wird der anderen Instanz mitgeteilt, daß diese den die alte Instanz killt) |
Re: Neustarten
Ich werde Larsi´s Methode mal probieren. Danke ersteinmal
|
Re: Neustarten
WatchDog klingt doch sehr nach µC. ;) Das würde, auf den PC übertragen, bedeuten, dass sich das komplette System neustarten müsste. Das macht Windows tatsächlich, allerdings nur nach BSOD, solange an der Standardeinstellung nichts gedreht wurde.
Die Idee mit dem Thread im Hintergrund klingt gar nicht mal so doof... |
Re: Neustarten
Dann werfe ich mal den Link in den Raum:
![]() ![]() Und strafe euch damit lügen, denn: Es geht doch :mrgreen: Zumindest ab Windows Vista/Server2008 und höher :angel2: |
Re: Neustarten
Nun ja... :oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz