Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi WMQueryEndSession ???? (https://www.delphipraxis.net/19400-wmqueryendsession.html)

Akut-Programming 2. Apr 2004 11:57


WMQueryEndSession ????
 
Also ich habe mir grad mal die Geschichte "Windows herunterfahren" angeschaut und auch, wie man es stoppen kann. Das herunterfahren funzt ja schonmal, aber meine Probleme liegen jetzt dabei, das herunterfahren auch wieder zustoppen. Dazu hatte ich über einen Link der DP, die folgende Funktion gefunden..
Delphi-Quellcode:
procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
  if MessageDlg('Close Windows now/ Windows beenden?',
                            mtConfirmation,
                            [mbYes,mbNo], 0) = mrNo then
      Msg.Result := 0 
   else
      Msg.Result := 1;
end;
Ja nur mir ist jetzt etwas unklar, wie ich dieße Funktion benutze, also was ich hier noch übergeben muss, das das herunterfahren auch gestoppt wird?! Oder brauch ich dieße Funktion so einfach nur noch z.B. bei einem Buttonklick aufrufen? Wär euch für eure Hilfe sehr verbunden!!

Gruß,

Chewie 2. Apr 2004 16:48

Re: WMQueryEndSession ????
 
Du musst diese Prozedur so deklarieren:

Delphi-Quellcode:
procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QUERYENDSESSION;
Durch das Setzen des Rückgabewerts auf 0 verhinderst du das beenden.

Akut-Programming 7. Apr 2004 18:14

Re: WMQueryEndSession ????
 
Also ich hatte das jetzt mal versucht..

Aber welchen Parameter muss ich ihr übergeben, wenn ich 0 übergeben will, dann meint der Compiler:
Code:
Die Typen der tatsächlichen und formularen Var-Parameter müssen übereinstimmen
:gruebel:

neolithos 7. Apr 2004 18:18

Re: WMQueryEndSession ????
 
WMQueryEndSession wird im weitesten Sinne von Windows gerufen! Und das nur, wenn Windows beendet wird, bzw. der Benutzer sich ausloggt.

Warum willst du diese Procedure rufen.

Chewie 7. Apr 2004 18:26

Re: WMQueryEndSession ????
 
Msg.Result ist der Rückgabewert, der an Windows übergeben wird.

Akut-Programming 7. Apr 2004 18:44

Re: WMQueryEndSession ????
 
Zitat:

Zitat von neolithos
WMQueryEndSession wird im weitesten Sinne von Windows gerufen! Und das nur, wenn Windows beendet wird, bzw. der Benutzer sich ausloggt.

Warum willst du diese Procedure rufen.

Du solltest meinen ersten Post lesen..
Zitat:

Also ich habe mir grad mal die Geschichte "Windows herunterfahren" angeschaut und auch, wie man es stoppen kann. Das herunterfahren funzt ja schonmal, aber meine Probleme liegen jetzt dabei, das herunterfahren auch wieder zustoppen...
:zwinker:
Und da ich nicht genau weiß, welchen Wert ich übergeben muss um das eingeleitete herunterfahren notfalls doch noch stoppen zu können. Aber mal schauen, vielleicht kann ich das Problem auch im Timer lösen... :gruebel:

neolithos 7. Apr 2004 18:49

Re: WMQueryEndSession ????
 
Bau diese Windows-Botschaft in dein Formular ein und gib wie es hier schon genannt wurde, und auch im Quellcode steht 0 zurück.

Akut-Programming 7. Apr 2004 18:54

Re: WMQueryEndSession ????
 
Also die Funktion ist bei mir so Deklariert:
Delphi-Quellcode:
procedure WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
  if MessageDlg('Windows beenden?',
                            mtConfirmation,
                            [mbYes,mbNo], 0) = mrNo then
      Msg.Result := 0
   else
      Msg.Result := 1;
end;
und so wollte ich sie aufrufen
Delphi-Quellcode:
WMQueryEndSession(0);
und da kam dieße Meldung:
Code:
Die Typen der tatsächlichen und formularen Var-Parameter müssen übereinstimmen

Akut-Programming 7. Apr 2004 18:54

Re: WMQueryEndSession ????
 
Also die Funktion ist bei mir so Definiert:
Delphi-Quellcode:
procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QUERYENDSESSION;
und so wollte ich sie aufrufen
Delphi-Quellcode:
WMQueryEndSession(0);
und da kam dieße Meldung:
Code:
Die Typen der tatsächlichen und formularen Var-Parameter müssen übereinstimmen

neolithos 7. Apr 2004 18:56

Re: WMQueryEndSession ????
 
Die Procedure wird von Windows gerufen. Siehe eines meiner post's darüber!


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.
Seite 1 von 2  1 2      

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