Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Programm verhindert Windows-Shutdown/-Logoff

  Alt 18. Mär 2006, 21:55
Hi,
ich war eigentlich der Meinung schonmal die Frage gestellt zu haben, aber kann den Thread einfach nicht wieder finden und damals gab es auch keine Antwort.

Mein Problem ist, dass mein schöner WallpaperChanger den Herunterfahr-Vorgang bzw. das Ausloggen verhindert. D.h. alle anderen Programme beenden sich brav, nur meine Software bleibt offen und Windows fährt nicht herunter.
Ich habe mich jetzt stundenlang nach der Ursache durch den Code und fast alle Komponenten gewühlt, konnte aber keinen Fehler finden.

Ich habe ursprünglich die Komponente TJvTrayIcon, die ich für die Anzeige des TNA-Icon verwende, verantwortlich dafür machen wollen, aber nachdem ich mehrmals die Komponente deaktiviert habe und es in anderen Anwendungen zu keinen Problemen kommt, scheint diese Komponente nicht der Übeltäter zu sein. Andere 3rd Party-Komponenten verwende ich eigentlich nicht.

Also dachte ich, dass ich irgendwo vergessen habe, auf Nachrichten zu reagieren, aber ich fange in meinem Hauptformular nur die WM_DROPFILES-Nachricht ab. An anderer Stelle habe ich mir aber ein Handle erzeugt und eine dazugehörige WndProc geschrieben:
Delphi-Quellcode:
procedure THotkeyItem.MsgProc(var msg: TMessage);
begin
  // Nachrichtenschleifen
  if msg.Msg = WM_HOTKEY then
    if Assigned(FOnHotkey) then
      fOnHotKey(self, self.Name)
  else
    DefWindowProc(FHandle, msg.Msg, msg.WParam, msg.LParam);
end;
Eigentlich sollte die doch alles wichtige, durch das DefWindowProc abdecken, oder nicht?


Ich bin gerne bereit weitere Teile des Source zu posten, aber mir fällt jetzt nichts weiter ein, an welchen Stellen es liegen könnte. Liegt es möglicherweise doch an der WndProc der JvTrayIcon-Komponente?
Irgendjemand eine gute Idee?

Chris
  Mit Zitat antworten Zitat