Delphi 編寫系統服務

2021-06-08 02:21:06 字數 2115 閱讀 7995

新建乙個類,例如名字叫做tnoticethread,繼承自tthread,並重寫protected過程execute。在noticeservice的類定義中新增乙個noticethread物件。

找到屬性的events選項卡,分別新增onstart,onpause,oncontinue,onstop事件,用這幾個事件來控制noticethread執行緒的執行:

**如下:

unit ufrmmain;

inte***ce

uses

windows, messages, sysutils, classes, graphics, controls, svcmgr, dialogs;

type

tnoticethread = class(tthread)

private

protected

procedure execute; override;

end;

type

tnoticeservice = class(tservice)

procedure servicestart(sender: tservice; var started: boolean);

procedure servicestop(sender: tservice; var stopped: boolean);

procedure servicepause(sender: tservice; var paused: boolean);

procedure servicecontinue(sender: tservice; var continued: boolean);

private

noticethread: tnoticethread;

public

function getservicecontroller: tservicecontroller; override;

end;

var noticeservice: tnoticeservice;

implementation

procedure servicecontroller(ctrlcode: dword); stdcall;

begin

noticeservice.controller(ctrlcode);

end;

function tnoticeservice.getservicecontroller: tservicecontroller;

begin

result := servicecontroller;

end;

procedure tnoticeservice.servicestart(sender: tservice;

var started: boolean);

begin

noticethread := tnoticethread.create(false);

started := true;

end;

procedure tnoticeservice.servicestop(sender: tservice;

var stopped: boolean);

begin

noticethread.terminate;

stopped := true;

end;

procedure tnoticeservice.servicepause(sender: tservice;

var paused: boolean);

begin

noticethread.suspend;

paused := true;

end;

procedure tnoticeservice.servicecontinue(sender: tservice;

var continued: boolean);

begin

noticethread.resume;

continued := true;

end;

procedure tnoticethread.execute;

begin

inherited;

end;

end.

Delphi編寫Windows NT中服務程式

windows nt服務程式不同於一般的執行程式,它不需要nt登入進去,只需要開機進入nt系統便可以執行,一般用於系統服務方面的應用,學會編寫nt服務程式對網路管理人員而言是非常重要的,delphi作為一種高效 快速 強大的開發語言,為開發nt服務程式提供了非常便捷的方法,加上其視覺化介面以及與資料...

用Delphi編寫Win2000服務程式

一 win2000 服務簡介 服務程式 是一種執行於 winnt 的後台程式,每個服務程式 中可能包含若干個服務 service 每個服務就是其中的乙個執行緒 該服務也可以建立多個子執行緒 採用服務,應用程式可以獲得特殊的許可權,而且不會被使用者通過 win2000 的任務管理器直接結束程式,所以服...

用DELPHI編寫NT服務時,如何指定依存關係?

q 我用delphi編寫了乙個nt的服務,且設定為自動啟動,可每次伺服器重啟後,該服務不能自動啟動。我感覺是由於該服務啟動時使用了sqlserver資料庫,可能由於sqlserver服務沒有啟動完成,導致該服務無法啟動,所以我想指定該服務的依存關係,讓它在sqlserver服務啟動完畢後再啟動,如何...