RegisterServiceProcess是一个Win9x的使用的SCM(服务控制管理器Service Control Manager)的函数,在NT或Win2k下不支持,你要是想做NT的服务程序,不是简单的注册一下是一个服务就行的,需要三个程序配合使用(1服务程序,2服务控制程序,3服务配置程序,在NT 下的服务远远比9x下的服务程序复杂多了,最好查MSDN的服务的文档,在PlatForm SDK ->Base Services ->Services中有详细说明,我当初学习时还把这部分翻译了一下,不过不是翻译得很好)
在NT/2k下注册服务器是用CreateService来注册(安装)一个服务的
在Delphi下可以New 一个Service Application ,为什么不用呢??
在NT/2k下注册服务器是用CreateService来注册(安装)一个服务的
在Delphi下可以New 一个Service Application ,为什么不用呢??
解决方案 »
- 超大多层图象的绘制
- 使用FastReport进行单据打印的难题
- 如何将Delphi的字符串 caption = #25511#21046#22120 直接转成汉字?
- 请教关于query的问题,急死我了
- 散分,欢迎各位大侠对Delphi7中的Rave和FastReport进行一个深入的比较
- oicq及网络游戏服务器和客户端是如何交换数据的?重谢!
- 关于1stclass的Tfctreeview的一个奇怪问题:为什么我用Tfctreeview显示树只能显示一次?在线等!
- 一个简单的菜鸟问题,救命!300分
- 请教高手关于安装BPL包的问题?(急)
- 使用ADOCONNECTION AND ADOTABLE关闭程序时老是是没有要操作的当前纪录,怎么办
- 如何用API函数压缩一个目录?
- Borland Socket Service
//声明:
type
xx=function (dwProcessId:dword;dwType:dword):Dword;stdcall;procedure TForm1.Button1Click(Sender: TObject);
//注册
procedure TForm1.Button1Click(Sender: TObject);
var
handx:dword;
handz:Dword;
TRegLib:xx;
begin
handx:=LoadLibrary('kernel32.dll');
if handx<>null then
begin
@TRegLib:=getprocaddress(handx,pchar('RegisterServiceProcess'));
handz:=getcurrentprocessID;
TRegLib(handz,1);
end;
end;
//取消注册
procedure TForm1.Button2Click(Sender: TObject);
var
handx:dword;
handz:Dword;
TRegLib:xx;
begin
handx:=LoadLibrary('kernel32.dll');
if handx<>null then
begin
@TRegLib:=getprocaddress(handx,pchar('RegisterServiceProcess'));
handz:=getcurrentprocessID;
TRegLib(handz,0);
end;
end;
delphi4有吗?