Forum: Win32/Win64 API (native code)
by BlueStarHH,
19. Jul 2016
Danke samso, Deine EXE läuft. Wenn ich dein Demoprojekt unverändert mit Delphi 2010 neu kompiliere, läuft es nicht mehr: Man sieht zwar den Text der BlockReason und es geht auch ganz kurz die Frage auf, ob gespeichert werden soll. Dann wird das Programm aber sofort und automatisch geschlossen, ohne das man einen Button im Dialog geklickt hat. Windows fährt dann nicht herunter.
Wenn ich das...
Forum: Win32/Win64 API (native code)
by BlueStarHH,
24. Jun 2016
Das funktioniert unter Windows 10 auch nicht. Sogar die BlockReason wird bei Deinem Code nicht erkannt/gesetzt. Ist auch nicht verwunderlich, denn durch if (Msg.Msg = WM_QUERYENDSESSION) then wird der Code nie ausgeführt, da Win10 ein ENDSESSION_CRITICAL beim Beenden über den Button im Startmenü sendet. Aber auch wenn man die Zeile auskommentiert klappt es nicht: BlockReason nicht erkannt und...
Forum: Win32/Win64 API (native code)
by BlueStarHH,
24. Jun 2016
Genau so ist es. Siehe mein Post #6. Der Punkt wo genau ShutdownBlockReasonCreate aufgerrufen werden soll, ist hier wohl aber nicht das Problem. Windows zeigt wie gesagt, den Text der BlockReason an, (hat die BlockReason also erkannt) beendet das Programm aber trotzdem...
Forum: Win32/Win64 API (native code)
by BlueStarHH,
23. Jun 2016
Hier wird WM_QueryEndSession nie angesprungen. Warum weiß ich nicht... Die WndProcHook wir ausgeführt. Beendet wird das Programm trotzdem.
Forum: Win32/Win64 API (native code)
by BlueStarHH,
23. Jun 2016
Daher gibt es ja meinen eigenen Handler, der 0 zurückgibt:
procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
procedure TForm1.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
Message.Result := 0;
end;
Forum: Win32/Win64 API (native code)
by BlueStarHH,
23. Jun 2016
Kann ich einbauen. Wie? Mit dem Debugger sieht man jedenfalls das erst WMQueryEndSession aufgerunfen wird und dann WMEndSession und danach wird das Programm von Windows beendet.
Forum: Win32/Win64 API (native code)
by BlueStarHH,
23. Jun 2016
Danke, das habe ich gelesen. Hilft leider nicht.
Forum: Win32/Win64 API (native code)
by BlueStarHH,
23. Jun 2016
Sicher? Nach meinem Gefühl wäre das viel zu spät. MS schreibt dazu:
Applications should call this function as they begin an operation that cannot be interrupted, such as burning a CD or DVD. When the operation has completed, call the ShutdownBlockReasonDestroy function to indicate that the system can be shut down.
Quelle:...
Forum: Win32/Win64 API (native code)
by BlueStarHH,
23. Jun 2016
Danke, aber das hat keinen Effekt: Windows beendet das Programm trotzdem.
Forum: Win32/Win64 API (native code)
by BlueStarHH,
23. Jun 2016
Hallo,
beim Herunterfahren von Windows soll mein Programm das Herunterfahren stoppen (falls die offene Datei noch gespeichert werden muss). Das Programm selbst darf dann auch nicht beendet werden. Mit dem folgendem Code wird zwar das Herunterfahren von Windows gestoppt, das Programm aber trotzdem von Windows beendet. Was ist daran falsch?
Bitte vor dem Herunterfahren auf Button1 klicken,...