Eines der Dinge, die ich zu implementieren versuche, ist, dass das Programm verhindert, dass sich der Computer ausschaltet, wenn er bestimmte Vorgänge ausführt, um Probleme zu vermeiden. Ich habe mir die recht unkomplizierten Microsoft-Dokumente durchgelesen und sie implementiert, aber nichts schien zu funktionieren. Dann bin ich auf diese Seite gestoßen, die mich darauf hingewiesen hat, wo das Problem liegen könnte:
Beachten Sie, dass das System keine Konsolenanwendungen oder Anwendungen ohne sichtbares Fenster zulässt um das Herunterfahren abzubrechen.
Was mich dazu brachte, mich zu fragen, ob ein Dialog aus irgendeinem Grund nicht zählt. Also habe ich versucht, vorübergehend zu einem leeren Fenster als Hauptfenster zu wechseln und es zu registrieren (etwas, was man mit einem Dialog so nicht machen kann) – und tatsächlich ist es plötzlich in der Lage, den Versuch, das Fenster herunterzufahren, ordnungsgemäß abzufangen.
Wie kann ich also den Herunterfahrversuch richtig abfangen, wenn mein Hauptfenster ein Dialog ist?
Mein Code sieht ungefähr so aus:
Code: Select all
INT_PTR CALLBACK DialogProc(HWND dialogHandle, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_QUERYENDSESSION:
return FALSE;
case WM_ENDSESSION:
return FALSE;
// code for handling other window/dialog events
}
return false;
}
Wie soll ich dabei vorgehen?