怎么解决把一个正常的EXE程序注册成系统服务后能正常启动,我现在注册成功后启动出现1053错误。有没有什么好办法,我需要程序中出现窗体,对话框等。
解决方案 »
- 如何判断取出来的一个字符是否是数字?
- 請教:在ie中可以顯示的網頁,在webbrowser中確無法顯示,怎麼回事?在線等!給100分
- 我写了一个程序,在本机上运行没有问题,可在别的机子上出现."应用程序正常初始化(Oxc0000142)失败。请单击“确定”,终止应用程序",我的
- 请问用delphi怎么才能自动新建一个文件夹...
- 请问TreeView中的显示的问题?
- 请问:用Delphi开发可解决各种复杂算法吗?
- 一个简单的问题(在线等)
- 用ado连接excel数据库的问题,解决马上给分。
- 初学:如何把 mdb数据库中的数据表导出到一个 paradox表中?
- ===如何通过程序将注册表文件(.reg),合并到注册表,及。。。。?
- 诚心求助,delphi源码 传奇登陆器问题
- 求助,请为以下代码添加注释,急用!!
另外服务跟操作系统也有很大关系的
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, Unit2;type
TSysLock = class(TService)
procedure ServiceStart(Sender: TService; var Started: Boolean);
procedure ServiceStop(Sender: TService; var Stopped: Boolean);
procedure ServicePause(Sender: TService; var Paused: Boolean);
procedure ServiceShutdown(Sender: TService);
procedure ServiceExecute(Sender: TService);
procedure ServiceContinue(Sender: TService; var Continued: Boolean);
procedure ServiceCreate(Sender: TObject);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;var
SysLock: TSysLock;
Frmlock: TFrmLock;
implementation{$R *.DFM}procedure ServiceController(CtrlCode: DWord); stdcall;
begin
SysLock.Controller(CtrlCode);
end;function TSysLock.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;procedure TSysLock.ServiceStart(Sender: TService; var Started: Boolean);
begin
Started := True;
SvcMgr.Application.CreateForm(TFrmLock,FrmLock);
//Frmlock.Hide;
end;procedure TSysLock.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
Stopped := True;
FrmLock.Free;
end;procedure TSysLock.ServicePause(Sender: TService; var Paused: Boolean);
begin
Paused := True;
end;procedure TSysLock.ServiceShutdown(Sender: TService);
begin
FrmLock.Free;
Status := csStopped;
ReportStatus();
end;procedure TSysLock.ServiceExecute(Sender: TService);
begin
while not Terminated do
begin
Sleep(10);
ServiceThread.ProcessRequests(False);
end;end;procedure TSysLock.ServiceContinue(Sender: TService;
var Continued: Boolean);
begin
while not Terminated do
begin
Sleep(10);
ServiceThread.ProcessRequests(False);
end;
end;procedure TSysLock.ServiceCreate(Sender: TObject);
beginend;end.