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 ,为什么不用呢??

解决方案 »

  1.   

    小弟用过,试试我的吧!
    //声明:
    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;
      

  2.   

    Delphi5 File--New--Service可以引导你建立Service程序。
    delphi4有吗?