请问如何将程序加到WIN的服务里面? 请问如何将程序加到WIN的服务里面? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 服务器程序不是加的,首先你的程序要是Service 程序必须是service,而不是普通的程序。然后在命令行中输入MyService /install就可以了。(MyService是你的service程序名)在管理工具--服务中可以发现你的服务已经安装。 例子使用一个TserverSocket,端口设为80,这个例子将在c:\temp目录下产生一个文本文件,名字为WebLogxxx.log(xxx是线程IDThreadID)。看运行结果:启动程序,打开一个Web浏览器,键入localhost,等待浏览器将超时,然后在c:\temp中将有一个Weblogxxx.log文件。interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,SvcMgr,Dialogs,ScktComp;typeTService1 = class(TService)ServerSocket1: TServerSocket;procedure ServerSocket1ClientRead(Sender: TObject;Socket: TCustomWinSocket);procedure Service1Execute(Sender: TService);private{ Private declarations }Stream: TMemoryStream;publicfunction GetServiceController: PServiceController; override;{ Public declarations }end;varService1: TService1;implementation{$R *.DFM}procedure ServiceController(CtrlCode: DWord); stdcall;beginService1.Controller(CtrlCode);end;function TService1.GetServiceController: PServiceController;beginResult := @ServiceController;end;procedure TService1.ServerSocket1ClientRead(Sender: TObject;Socket: TCustomWinSocket);varBuffer: PChar;beginBuffer := nil;while Socket.ReceiveLength > 0 do begintryBuffer := AllocMem(Socket.ReceiveLength);Socket.ReceiveBuf(Buffer^Socket.ReceiveLength);Stream.Write(Buffer^StrLen(Buffer));finallyFreeMem(Buffer);end;Stream.Seek(0,soFromBeginning);Stream.SaveToFile('c:\Temp\Weblog' + IntToStr(ServiceThread.ThreadID) + '.log');end;end;procedure TService1.Service1Execute(Sender: TService);beginStream := TMemoryStream.Create;tryServerSocket1.Port := 80; // WWW portServerSocket1.Active := True;while not Terminated do beginServiceThread.ProcessRequests(False);end;ServerSocket1.Active := False;finallyStream.Free;end;end;end. 请问各位大吓,我做了一个服务,服务运行起来了,但我想运行的同时能在Windows状态栏的右下方有服务运行的图标出现,并且双击图标能把其界面打开。 请问各位大吓,我做了一个服务,服务运行起来了,但我想运行的同时能在Windows状态栏的右下方有服务运行的图标出现,并且双击图标能把其界面打开。哈哈我刚解决,EMail给我 [email protected] 是不是delphi2009的bug? 高分求一店名 急求VideoCap控件 哪有下载像优化大师界面一样的控件? 急!!!,paradox表打不开,出错提示 Corrupt table/index header 放分最爽了。昨天放分,少写了一个0,支持率低下。 请为小弟提点意见。(这次先给70分,以后再给200分。一定给!) 通知大家zswang下线(祝大家周末愉快) 100分求购fastreport 2.3的控件(带源码) 该怎么实现?? delphi com+问题 以Tdx****,Tww******,开头的是什么控件在哪里可以下到?
然后在命令行中输入
MyService /install
就可以了。(MyService是你的service程序名)
在管理工具--服务中可以发现你的服务已经安装。
Windows,Messages,SysUtils,Classes,Graphics,Controls,SvcMgr,Dialogs,ScktComp;type
TService1 = class(TService)
ServerSocket1: TServerSocket;
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure Service1Execute(Sender: TService);
private
{ Private declarations }
Stream: TMemoryStream;
public
function GetServiceController: PServiceController; override;
{ Public declarations }
end;var
Service1: TService1;implementation{$R *.DFM}procedure ServiceController(CtrlCode: DWord); stdcall;
begin
Service1.Controller(CtrlCode);
end;
function TService1.GetServiceController: PServiceController;
begin
Result := @ServiceController;
end;procedure TService1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Buffer: PChar;
begin
Buffer := nil;
while Socket.ReceiveLength > 0 do begin
try
Buffer := AllocMem(Socket.ReceiveLength);
Socket.ReceiveBuf(Buffer^Socket.ReceiveLength);
Stream.Write(Buffer^StrLen(Buffer));
finally
FreeMem(Buffer);
end;
Stream.Seek(0,soFromBeginning);
Stream.SaveToFile('c:\Temp\Weblog' + IntToStr(ServiceThread.ThreadID) + '.log');
end;
end;
procedure TService1.Service1Execute(Sender: TService);
begin
Stream := TMemoryStream.Create;
try
ServerSocket1.Port := 80; // WWW port
ServerSocket1.Active := True;
while not Terminated do begin
ServiceThread.ProcessRequests(False);
end;
ServerSocket1.Active := False;
finally
Stream.Free;
end;
end;end.