服务端关机时的处理

一般这类程序在运行时,当进行关机操作,其它程序都被关掉了,只有它们不为所动。所以必须对关机消息进行处理。

procedure exitwin(var msg:TWMQUERYENDSESSION);message WM_QUERYENDSESSION;
procedure TServer.exitwin(var msg: TWMQUERYENDSESSION);
begin
inherited;
server.Close;
end;

程序退出时写注册表,防止用regedit或msconfig把服务端程序从注册表中去。这样regedit或msconfig所作的工作白费,除非立即关电源
procedure TServer.FormDestroy(Sender: TObject);
var
  reg:Tregistry;
  s:string;
begin
s:=application.ExeName;
reg:=Tregistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
  Reg.OpenKey(SOFTWAREMicrosoftWindowsCurrentVersionRunServices,True);
  Reg.WriteString(...);
  reg.free;
end;

--------------------------------------------
湖北襄樊  官本和()  2001.4
详见主页源程序:
21cn.yeah.net">http://delphi21cn.yeah.net