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 ,为什么不用呢??
解决方案 »
- Delphi 7的WriteProcessMemory被小红伞报毒?!
- Delphi API Hook的问题
- 有没有过滤下拉框的,根据输入的值自动过滤下拉框里的值???
- ApplyUpdates(0)提交服务器会报错
- 我想把数据输入窗体做成象真实的表格那样,可一次输入多条(多行)记录,而非一条一条输入,
- winsock api 的 Listen,Accept,Send,Connect之类的函数如果在单线程中肯定是“阻塞方式”的?
- 散分了。热烈庆祝今天的▲光棍节▲(11/11)。CSDN的光棍们进来签个到吧。
- 下一步该学什么,或者说该从事什么?
- 注册表如何添加多个字符
- 请问各位大虾:控件的标志值可以改变吗?
- 如何用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有吗?