Hola, teniendo el siguiente ejemplo ...
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
public
procedure WMQueryEndSession (var Msg: TWMQueryEndSession);
message WM_QueryEndSession; end;
var
Form1: TForm1;
EndSessionFlags: integer; ProcessStatus: integer;
implementation
{$R *.dfm}
procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
showmessage (inttostr(msg.source) + ' ' + Msg.Result);
case ProcessStatus of
0: begin
ProcessStatus := 1; EndSessionFlags := Msg.Source; Msg.Result := 0; end;
1: Msg.Result := 0; 2: begin
ProcessStatus := 0; Msg.Result := 1; end;
end;
end;
end.
da igual que yo le mande cerrar la sesion, apagar o reiniciar ... el showmessage me muestra que el valor siempre es 0, con lo que siempre me cierra la sesion.
Alguna idea de por que pasa esto? Un saludo.
PD: falta un trocito de codigo que pone el 2: //Que hemos terminado de realizar el proceso, pero eso no es importante ... trabajo con delphi7 y win2000, pero en xp tambien me pasa.