• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        Delphi 編寫Windows NT服務

        Delphi 編寫Windows NT服務

        更新時間:2019-05-30 文章作者:未知 信息來源:網絡 閱讀次數:

        1.產生一個Win32服務應用

          產生一個Win32服務應用,選擇File|New菜單,在New Items頁中選擇Service Application。這樣在你的工程里加入一個全局變量命名的應用,它是 TserviceApplication類型。每個服務工程自動的聲明一個TServiceApplication 實例,并不需要直接的對它編程。另外自動產生一個TService對象。
          當你產生一個服務應用,你會在設計環境中看到一個窗口,它對應了一個服務 (Tservice)。在Object Inspector中設置它的屬性和事件以實現它。在你的服務應用中可以加入其他的服務。不要將Service加入在一個非Service Application中。當加入一個TService對象時,因為服務,應用將不產生事件請求和使用合適的窗口調用。



        2.TServiceApplication

          TServiceApplication封裝了windows NT Service Application。它提供服務應用的基本行為框架。它包含TService對象,每個Tservice封裝了一個NT服務。服務應用提供服務產生、安裝、注冊、分發和卸載的方法。



        注意,不要在工程的uses列表中加入Forms或HtppApp,因為這些單元有些

        Aplication變量有沖突。



        3.TService

        每個Tservice都有一個線程。

        特性

        AllowPause

        AllowStop

        Dependencies

        DisplayName

        ErrCode

        ErrorSeverity

        Interactive

        LoadGroup

        Param

        ParamCount

        Password

        ServiceStartName

        ServiceThread



        ServiceType

        StartType

        Status

        TagID

        Terminated

        WaitHint

        Win32ErrCode



        方法:

        Create

        Destroy

        GetServiceController

        LogMessage

        ReportStatus



        事件

        AfterInstall

        AfterUninstall

        BeforeInstall

        BeforeUninstall

        OnContinue

        OnExecute

        OnPause

        OnShutdown

        OnStart

        OnStop



        4.樣例
          例子使用一個TserverSocket,端口設為80,這個例子將在c:\temp目錄下產生一個文本文件,名字為WebLogxxx.log(xxx是線程IDThreadID)。看運行結果:啟動程序,打開一個Web瀏覽器,鍵入localhost,等待瀏覽器將超時,然后在c:\temp中將有一個Weblogxxx.log文件。

        interface

        uses



        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) + '.lo

        ');

        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.

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 免费不卡视频一卡二卡| 亚洲av无码成h人动漫无遮挡 | 免费看国产精品麻豆| 永久免费视频网站在线观看| 一级毛片免费播放视频| 亚洲AV无码国产剧情| 亚洲伊人久久大香线蕉结合| 亚洲精品综合一二三区在线| 在线观看亚洲精品福利片| 国产一级理论免费版| 在线免费观看一级片| 黄色永久免费网站| 99视频在线精品免费| 老司机精品免费视频| 一级毛片免费全部播放| 婷婷国产偷v国产偷v亚洲| 久久国产亚洲精品| 亚洲Av无码一区二区二三区 | 中文字幕免费在线看线人| 一个人免费视频在线观看www| 日韩精品视频在线观看免费| 美女的胸又黄又www网站免费| 亚洲色精品三区二区一区| 久久久久精品国产亚洲AV无码| 久久久久亚洲AV无码网站| 亚洲AV无码久久精品成人| 久热综合在线亚洲精品| 亚洲色偷拍另类无码专区| 亚洲综合AV在线在线播放| 亚洲无码在线播放| 亚洲精品白浆高清久久久久久| 亚洲中文久久精品无码ww16| 亚洲色无码专区在线观看| 亚洲精品自在在线观看| 久久久久亚洲精品成人网小说| 国产亚洲精品岁国产微拍精品| 亚洲级αV无码毛片久久精品| 亚洲精品乱码久久久久久蜜桃不卡| 亚洲国产成人片在线观看| 日韩亚洲欧洲在线com91tv| 亚洲嫩草影院久久精品|