新建乙個類,例如名字叫做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服務啟動完畢後再啟動,如何...