Service verhindert Shutdown
-
Hallo zusammen,
ich habe einen Service laufen, der den Shutdown von Windows verhindert. Ich habe schon ein "Ohr" auf WMQUERYENSSESSION... Aber irgendwie reagiert der Service nicht. Er springt nicht einmal in die Routine. Was mache ich falsch??
Gruß
Dominique
-
Was ist mit dem OnShutdown-Event, wird das ausgelöst?
Ansonsten würden ein paar nähere Informationen zu deinem Service sicher auch nicht schaden.
-
Hallo,
dieser Code steht in der .cpp-Datei:
delete ADOConnection1; delete ADOQuery1; delete ADOTable1; delete Timer1; delete NMFTP1; delete Timer2; sds_service_install_exec->DestroyComponents(); // <--Wichtig !... TObject::Dispatch(&Msg); delete sds_service_install_exec;und dieser in der .h-Datei
protected: BEGIN_MESSAGE_MAP VCL_MESSAGE_HANDLER(WM_QUERYENDSESSION, TMessage, OnQueryEndSession) END_MESSAGE_MAP(TService) void __fastcall OnQueryEndSession(TMessage & Msg);So hab ich das auch hier in den FAQ's gefunden. Dabei ging es aber um "normale" exe-Dateien. Daher wußte ich nicht ob das auch beim Service paßt. Das OnShutdown hab ich gerade ausprobiert. Rein geht er. Aber das Runterfahren passiert erst, wenn man es ein zweitesmal auslöst.
Gruß
Dominique
-
Hallo!
Ich kann das Problem nachvollziehen.
Ist der Service "interactive" kommt er nie in die OnQuery-Fkt.
Ist der Service nicht "interactive" kommt er zwar auch nicht hin, dafuer wird aber das OmShutdown-Event ausgelöst. Anschließend fährt Windows problemlos runter.
(BCB5Pro, WinXp Home)
Ist es sicher das auch ein Service die WM_QUERYENDSESSION-Nachricht erhält?
Bleibt die Nachricht nicht vielleicht irgenwo in der Dienstverwaltung hängen oder wird modifiziert weitergeleitet?
-
Hallo,
ich habe das Problem gelöst, indem ich die ADO-Koponenten von der Serviceform genommen hab... Aber das wahre ist diese Lösung nicht...
Gruß
Dominique
-
Wird der Service über WM_QUERYENDSESSION geschlossen oder über seine OnShutdown-Methode. Würde mich persönlich interessieren.
Und ist er interaktiv oder nicht?