Albion
asked on
Windows NT dont shut down
Following Problem:
1. New Application.
2. Use a NMPOP3 Component (Delphi Prof. or Delphi Client Server)
3. My Source Code
Prozedur "WMSysCommand"
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Psock, NMpop3;
type
TForm1 = class(TForm)
NMPOP31: TNMPOP3;
private
Procedure WMSysCommand(var Message: TWMSysCommand); message WM_SysCommand;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
inherited;
end;
end.
Coded in D4 and D5.
Windows NT with SP5 dont shutdown.
Why?
What can i do that Windows NT shuts down?
There are no Problems with Win 9x
1. New Application.
2. Use a NMPOP3 Component (Delphi Prof. or Delphi Client Server)
3. My Source Code
Prozedur "WMSysCommand"
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Psock, NMpop3;
type
TForm1 = class(TForm)
NMPOP31: TNMPOP3;
private
Procedure WMSysCommand(var Message: TWMSysCommand); message WM_SysCommand;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
inherited;
end;
end.
Coded in D4 and D5.
Windows NT with SP5 dont shutdown.
Why?
What can i do that Windows NT shuts down?
There are no Problems with Win 9x
ASKER
i dont want to shutdown NT by my programm.
if my application runs and i want to shutdown NT manuel, that dosent work.
i dont want sghut down NT with my Application.
if my application runs and i want to shutdown NT manuel, that dosent work.
i dont want sghut down NT with my Application.
I can't understand. Do you need to close your application if NT is about shutting down?
(Tu voulez fermer le programme si NT finit le travail?)
(Du willst das eigene Programm zumachen falls NT die Arbeit beendet?)
------
Igor.
(Tu voulez fermer le programme si NT finit le travail?)
(Du willst das eigene Programm zumachen falls NT die Arbeit beendet?)
------
Igor.
ASKER
fein deutsch ...
folgendes ...
sobald du in delphi die elemente benutzt, NMPOP3 Komponente und die Windowsmessages abfängst (ich leite sie einfach weitermit inherited, nur als beispiel)
fährt NT nicht mehr runter wenn du NT einfach ganz normal beenden willst.
d.h. meine application verhindert den shutdown von NT.
erstelle diese Application mal bei dir unter NT ...
starte die EXE-datei und versuche dann NT zu beenden.
NT bricht den shutdown einfach ab...
ich weis nur nicht wieso..
in meiner eigentlichen application fange ich dort das minimize ab ...
ich weiß einfach nicht warum NT den shutdown abbricht
albion
folgendes ...
sobald du in delphi die elemente benutzt, NMPOP3 Komponente und die Windowsmessages abfängst (ich leite sie einfach weitermit inherited, nur als beispiel)
fährt NT nicht mehr runter wenn du NT einfach ganz normal beenden willst.
d.h. meine application verhindert den shutdown von NT.
erstelle diese Application mal bei dir unter NT ...
starte die EXE-datei und versuche dann NT zu beenden.
NT bricht den shutdown einfach ab...
ich weis nur nicht wieso..
in meiner eigentlichen application fange ich dort das minimize ab ...
ich weiß einfach nicht warum NT den shutdown abbricht
albion
Jetzt habe ich verstanden. Jetzt werde ich das Experiment machen. Einen Moment....
hello,
if windows wil not shutdown then i sugest to handle WMQueryEndSession to listen when windows wants to close and when windows wants to shutdown it will return a "ok then close" to windows
Regards Barry
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure WMQueryEndSession(var Msg: TWMQueryEndSession) ; message WM_QUERYENDSESSION ;
public
{ Public declarations }
end;
var
Form1: TForm1;
ok_to_close : boolean;
implementation
{$R *.DFM}
procedure TForm1.WMQueryEndSession(v ar Msg: TWMQueryEndSession);
const
CAN_SHUTDOWN = 0 ;
DONT_SHUTDOWN = 1 ;
begin
inherited ;
if ok_to_close then {ok_to_close is the global boolean}
Msg.Result := CAN_SHUTDOWN
else {if ok_to_close has been set to false then we would get here}
Msg.Result := DONT_SHUTDOWN ;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ok_to_close := true;
end;
if windows wil not shutdown then i sugest to handle WMQueryEndSession to listen when windows wants to close and when windows wants to shutdown it will return a "ok then close" to windows
Regards Barry
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure WMQueryEndSession(var Msg: TWMQueryEndSession) ; message WM_QUERYENDSESSION ;
public
{ Public declarations }
end;
var
Form1: TForm1;
ok_to_close : boolean;
implementation
{$R *.DFM}
procedure TForm1.WMQueryEndSession(v
const
CAN_SHUTDOWN = 0 ;
DONT_SHUTDOWN = 1 ;
begin
inherited ;
if ok_to_close then {ok_to_close is the global boolean}
Msg.Result := CAN_SHUTDOWN
else {if ok_to_close has been set to false then we would get here}
Msg.Result := DONT_SHUTDOWN ;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ok_to_close := true;
end;
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
yep most all netmasters comps arent so good better to use winshoes or f.piettes i reckon ;-)
Barry,
agree;)
agree;)
ASKER
War zwar nicht NMPOP.Abort, sonder NMPOP3.Free, aber letztendlich wars das ...
Die Connection hab ich zwar vorher schon gekillt, rechte aber wohl nicht ...
besten Dank!!!
cu & hus
Albion
Die Connection hab ich zwar vorher schon gekillt, rechte aber wohl nicht ...
besten Dank!!!
cu & hus
Albion
Ist froh war zu helfen.
----
Igor.
----
Igor.
----
Igor.