Announcement

Collapse
No announcement yet.

WM_QUERYENDSESSION funktioniert nicht mehr...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • WM_QUERYENDSESSION funktioniert nicht mehr...

    Hallo,

    ich habe ein kleines Problem mit der Ereignisbehandlung, wenn Windows herunterfährt. Mein Programm zeigt beim Beenden nämlich einen kleinen Dialog, der allerdings nicht angezeigt werden soll, wenn Windows herunterfährt. Dazu habe benutze ich TApplicationEvents und die OnMessage-Routine sieht so aus:
    Code:
    void __fastcall THauptForm::ApplicationEventsMessage(tagMSG &Msg, bool &Handled)
    {
    
     if(Msg.message==WM_QUERYENDSESSION)
     {
    
      ShowMessage("EndSession");
    
      blShutdown=true;
    
     }
    Wenn ich nun Windows VISTA herunterfahre wird diese Meldung nie empfangen (ich sehe also die die Meldung "EndSession" und meine Variable blShutdown wird auch nicht auf true gesetzt)... was mache ich falsch? Ich benutze Windows Vista und Turbo C++ 2006.

    Vielen Dank im Voraus!

  • #2
    Hallo,

    wenn du schreibst "Funktioniert nicht mehr", gehe ich richtig in der Annahme, dass es auf deine Art mal funktioniert hat? Wenn ja, was hast du geändert?

    Ansonsten fange ich die Nachrichten immer so ab:

    Code:
    void __fastcall TFormular::WndProc(TMessage &Message)
    {
    if (Message.Msg == WM_QUERYENDSESSION)
        {
        //Code
        Message.Result = true;
        return;
        }
    
    TForm::WndProc(Message);
    }
    Mit freundlichen Grüßen,
    Freiheit
    ---
    //don't question it ... it's clearly an optimization
    ---
    lafin.de lanmonitor.de

    Comment

    Working...
    X