Windows XP: WM_ENDSESSION



  • Hi!
    Ich habe ein kleines Programm geschrieben, dass sich im Tray neben der Uhr einklinkt. Wenn der Rechner heruntergefahren werden soll, dann führt das Programm noch schnell ein anderes Programm aus und wartet bis dies fertig ist. Ich reagiere dazu auf WM_ENDSESSION. Leider stürzt das Programm dann ab. Dieselbe Operation kann auch manuell durchgeführt werden und da funktioniert sie einwandfrei...

    Kann man dem Betriebssystem mitteilen, dass es noch eben schnell warten soll, bis das Programm beendet ist, bis es herunterfährt. Ich nehme nämlich an, dass das Programm abstürzt, weil es beendet wird, bevor der Kindprozess fertig ist.

    Unter Windows 98 funktioniert alles einwandfrei...

    Unter Windows XP kommt die Fehlermeldung: "Die Anwendung konnte nicht richtig initialisiert werden. (0xC0000142). Klicken Sie auf "OK", um die Anwendung zu beenden"

    Danke schonmal im Voraus für alle Antworten...



  • Nachdem WM_ENDSESSION empfangen wurde, wird jede Anfrage zur Erstellung eines neuen Prozesses vom Betriebssystem abgewiesen.



  • Ich habe es jetzt auf WM_QUERYENDSESSION gestellt. Ist es dort schon zu spät?



  • Nein, das sollte keine Probleme machen. Ich würde aber sagen, dass du TRUE erst zurückgibst, nachdem du deine Aufgabe ausgeführt hast, da das Betriebssystem ja sonst schon annimmt, dass dein Programm ohne Probleme beendet werden kann. Ich bin mir in der Hinsicht allerdings nicht sicher.


Anmelden zum Antworten