AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dienst lässt Windows nicht beenden
Thema durchsuchen
Ansicht
Themen-Optionen

Dienst lässt Windows nicht beenden

Ein Thema von Dark Crow · begonnen am 3. Jan 2006 · letzter Beitrag vom 9. Jan 2006
Antwort Antwort
Dark Crow
(Gast)

n/a Beiträge
 
#1

Dienst lässt Windows nicht beenden

  Alt 3. Jan 2006, 08:58
Hallo DP-Gemeinde,

ich hab nen Problem bei dem ich zur Zeit echt nicht weiterkomm

Habe nen Dienst geschrieben, welcher das ntBackup-Programm steuert (Zeitgesteuert auslöst, Backuplog als Mail verschickt, usw). Das funktioniert auch alles.

Mein Problem ist jetzt, dass ich, auch wenn es jetzt wieder mekker geben wird, "Datenaustausch zwischen Dienst und Desktop" aktiviert hab, da ein kleines Tray-Icon angezeigt wird, welches den momentanen Status anzeigt.

Wenn ich nun versuche Windows herunterzufahren, funktioniert dies so lange nicht, bis ich den Dienst manuell beende. Sobald ich den Haken bei "Datenaustausch zwischen ..." rausnehme, funktioniert es einwandfrei.

OS: Windows XP
Delphi: 6 Pro

Für den Dienst hab ich den Delphi "Assistent" benutzt.

grüße Markus
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#2

Re: Dienst lässt Windows nicht beenden

  Alt 3. Jan 2006, 14:27
Ich vermute dass es sich dabei um das typische WM_QUERYENDSESSION - Problem handelt. Die Suche sollte helfen.

Du solltest dir dennoch Gedanken machen, wie du das Tray-Icon anders angezeigt bekommst, sonst wirst du deine Backups evtl. früher brauchen als dir lieb ist
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Dark Crow
(Gast)

n/a Beiträge
 
#3

Re: Dienst lässt Windows nicht beenden

  Alt 3. Jan 2006, 15:30
Zuerst mal danke für deine Hilfe ... ich hab das Problem gelöst ... hab das Tray in ne andere Anwendung verfrachtet, die mit dem Service per Sockets kommuniziert ...

Aber mich würde interessieren, was du mit "WM_QUERYENDSESSION - Problem" meinst

Bei meinem "Versuch" WM_QUERYENDSESSION mittels

Delphi-Quellcode:
private
procedure WMQueryEndSession (var M: TWMQueryEndSession); message
  WM_QUERYENDSESSION;
Delphi-Quellcode:
procedure TNTBackupToolService.WMQueryEndSession (var M: TWMQueryEndSession);
begin
inherited;
 // Code ...
end;
das Event "mitzubekommen" ist nichts dabei rausgekommen ... gibt es da etwas Spezielles zu beachten bei einem Service?



Ich glaub, ich werd mich hier öfters blicken lassen

grüße
Markus
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Dienst lässt Windows nicht beenden

  Alt 9. Jan 2006, 22:53
Er meint das:
Zitat:
The WM_QUERYENDSESSION message is sent when the user chooses to end the session or when an application calls the ExitWindows function. If any application returns zero, the session is not ended. The system stops sending WM_QUERYENDSESSION messages as soon as one application returns zero.

After processing this message, the system sends the WM_ENDSESSION message with the wParam parameter set to the results of the WM_QUERYENDSESSION message.

A window receives this message through its WindowProc function.
Siehe MSDN-Library durchsuchenWM_QUERYENDSESSION
  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 16:26 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