New->Other->New屬性頁->ServiceApplication,系統(tǒng)自動會創(chuàng)建基本的代碼。這里需要說明的是,">
用delphi7編寫windows服務程序

用delphi7編寫windows服務程序

ID:37295581

大小:101.50 KB

頁數(shù):19頁

時間:2019-05-21

用delphi7編寫windows服務程序_第1頁
用delphi7編寫windows服務程序_第2頁
用delphi7編寫windows服務程序_第3頁
用delphi7編寫windows服務程序_第4頁
用delphi7編寫windows服務程序_第5頁
資源描述:

《用delphi7編寫windows服務程序》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、用delphi7編寫windows服務程序總結(jié)一、服務程序的創(chuàng)建delphi編寫服務程序非常簡單,點擊菜單File->New->Other->New屬性頁->ServiceApplication,系統(tǒng)自動會創(chuàng)建基本的代碼。這里需要說明的是,在“New屬性頁”中還有一個Service,這個Service和ServiceApplication還是有區(qū)別的,應該說ServiceApplication的范圍大,它可以包含幾個Service。一個ServiceApplication可以創(chuàng)建幾個Service,service繼承自TService,界面表現(xiàn)和TDataModel類

2、似,做過數(shù)據(jù)庫的朋友肯定都不陌生,區(qū)別是TDataModel是用來放數(shù)據(jù)庫連接及操作組件的容器,而TService則是可以存放很多沒有界面的組件,如indy的IDtcpclient等。二、重要屬性及事件說明屬性:DisplayName顯示名稱Name名稱,當你用命令提示符來啟動、停止服務時,就需要用到Interactive與界面交互的選項事件:OnCreate:類似于Tform的OnCreateOnDestroy:類似于Tform的OnDestroyOnExecute:非常重要,一般寫成下面whilenotTerminateddobeginSleep(10);Serv

3、iceThread.ProcessRequests(False);end;OnPause:服務暫停OnShutdown:不太清楚OnStart:服務啟動,重要OnStop:服務停止,重要三、服務的依賴關(guān)系因為我的服務是要連接數(shù)據(jù)庫的,所以必須要等sqlserver的服務起來之后,我才能起來,這樣才能連接數(shù)據(jù)庫,因此這里面有個依賴關(guān)系的問題??梢栽趯傩訢ependencies中增加一項,選擇MSSQLSERVER。四、服務與界面的通訊服務也是可以創(chuàng)建form的,只是只是這個窗口,在服務啟動時顯示,服務停止后就關(guān)閉了。而我想做一個就象sqlserver2000的服務管理器

4、哪樣的界面,不論服務啟動是否,都可以顯示,而且也可以在界面上直接控制服務。所以我就又建了一個應用,而這個應用和原來服務的通訊用自定義消息來傳遞。比如,有人通過控制面板停止服務了,服務必須通知界面上的狀態(tài)。Delphi獲取Windows系統(tǒng)服務的狀態(tài)functionServiceGetStatus(sMachine,sService:string):DWord;varschm,schs:SC_Handle;ss:TServiceStatus;dwStat:DWord;begindwStat:=0;schm:=OpenSCManager(PChar(sMachine),N

5、il,SC_MANAGER_CONNECT);if(schm>0)thenbeginschs:=OpenService(schm,PChar(sService),SERVICE_QUERY_STATUS);if(schs>0)thenbeginif(QueryServiceStatus(schs,ss))thendwStat:=ss.dwCurrentState;CloseServiceHandle(schs);end;CloseServiceHandle(schm);end;Result:=dwStat;end;{判斷某服務是否安裝,未安裝返回true,已安裝返回f

6、alse}functionServiceUninstalled(sMachine,sService:string):boolean;beginResult:=0=ServiceGetStatus(sMachine,sService);end;{判斷某服務是否啟動,啟動返回true,未啟動返回false}functionServiceRunning(sMachine,sService:string):boolean;beginResult:=SERVICE_RUNNING=ServiceGetStatus(sMachine,sService);end;{判斷某服務是否停

7、止,停止返回true,未停止返回false}functionServiceStopped(sMachine,sService:string):boolean;beginResult:=SERVICE_STOPPED=ServiceGetStatus(sMachine,sService);end;Delphi如何停止、啟動windows系統(tǒng)服務//下面是寫了一個啟動服務的函數(shù)StartService,用來啟動服務。。。functionStartService(AServName:string):Boolean;//useWinSvcvarSCManag

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。