Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Noch "eben was" beim Abmelden/Herunterfahren ausführen (https://www.delphipraxis.net/105215-noch-eben-beim-abmelden-herunterfahren-ausfuehren.html)

lasermouse 18. Dez 2007 00:02


Noch "eben was" beim Abmelden/Herunterfahren ausfü
 
Man kann ja abfangen wenn der User ausgeloggt wird mit MEndSession/MEndSessionQuery (wo ist eig. der Unterschied??)...

Nunja aber wenn ich hier Code einbaue (z.B. das Dinge die noch nicht gespeichert sind noch schnell gesichert werden..) dann wird das zwar ausgeführt, aber Windows fährt nicht weiter herunter!

Wie kann ich es machen, das Windows nach dem Ausführen der Dinge weiter herunterfährt/sich abmeldet?

Muetze1 18. Dez 2007 00:11

Re: Noch "eben was" beim Abmelden/Herunterfahren a
 
Gegenfrage: was ist der Unterschied zwischen OnCloseQuery und OnClose bei einer Form?

Von daher: Was ist dein Rückgabewert beim WM_QUERYENDSESSION?

lasermouse 19. Dez 2007 19:54

Re: Noch "eben was" beim Abmelden/Herunterfahren a
 
Zitat:

Zitat von Muetze1
Gegenfrage: was ist der Unterschied zwischen OnCloseQuery und OnClose bei einer Form?

Von daher: Was ist dein Rückgabewert beim WM_QUERYENDSESSION?

Hallo...habe es jetzt so...aber das geht leider nicht:

Delphi-Quellcode:
procedure WMEndSessionQuery(var Msg: TMessage); message WM_QUERYENDSESSION;

procedure TForm1.WMEndSessionQuery;
begin
[...Code der vorm Herunterfahren noch eben ausgeführt werden soll...]
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=true;
end;

himitsu 19. Dez 2007 20:20

Re: Noch "eben was" beim Abmelden/Herunterfahren a
 
WM_QUERYENDSESSION erwartet einen bestimmten Rückgabe und nur wenn die "OK" sagt, dann wird runtergefahren.

WM_QUERYENDSESSION
"Query" fragt dein Programm ob Windows runtergefahren werden darf.

Falls dein Programm nein sagt (oder was falsches) dann macht Windows nicht weiter,
also was gibst du zurück?

lasermouse 19. Dez 2007 20:24

Re: Noch "eben was" beim Abmelden/Herunterfahren a
 
Zitat:

Zitat von himitsu
Falls dein Programm nein sagt (oder was falsches) dann macht Windows nicht weiter,
also was gibt's du zurück?

Bisher garnichts...Was muss ich denn genau zurückgeben?
Wusste nicht das eine procedure was zurückgeben kann ?!?

C.Schoch 19. Dez 2007 20:52

Re: Noch "eben was" beim Abmelden/Herunterfahren a
 
Hi,

IMHO musst du
Delphi-Quellcode:
Msg.Result := integer(true);
zurückgeben

himitsu 19. Dez 2007 20:52

Re: Noch "eben was" beim Abmelden/Herunterfahren a
 
MSDN-Library durchsuchenWM_QUERYENDSESSION

schau dir mal TMessage genau an :zwinker:

lasermouse 19. Dez 2007 21:22

Re: Noch "eben was" beim Abmelden/Herunterfahren a
 
Zitat:

Zitat von C.Schoch
Hi,

IMHO musst du
Delphi-Quellcode:
Msg.Result := integer(true);
zurückgeben

So wie es aussieht, geht das unter XP!
Aber unter Vista kommt: " Das Programm behindert das Herunterfahren und der Bildschirm wird schwarz...Was ist da los?

C.Schoch 20. Dez 2007 09:52

Re: Noch "eben was" beim Abmelden/Herunterfahren a
 
Hi,

In Windows Vista hat sich diesbezüglich einiges geändert, siehe Hier oder Hier

Würde also heißen dein Routine dauert zu lange. Verhindern lässt sich dieser Screen also nur durch Optimierung


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz