關於系統服務程式的編寫

2021-09-30 08:40:34 字數 1279 閱讀 4230

什麼是服務?

服務也是一種應用程式的型別,與普通程式不同的是,服務程式總是在後台默默執行,使用者察覺不到,並且開機時即立刻啟動,但在任務管理器中不存在對應的程序。

如何檢視服務?

那麼既然在任務管理器中不存在相應的程序,我們如何取消服務呢?在「我的電腦」上單擊右鍵,在選單中選擇「管理」->服務和應用程式->服務,就可以看見當前電腦中所有的服務了。在需要停止的服務上右擊,選擇停止,即可以停止該服務了。

如何新增/刪除服務?

"開始"->執行,輸入cmd,新增服務命令:sc create 服務名,刪除服務命令:sc delete 服務名。

服務程式的編寫

在乙個服務程式中主要有幾個重要的函式:main(入口函式,也可以為其它名字),serviceinstall,serviceunstall,service_main,service_ctrl。

以下為main函式:

下面我們就來各個擊破以上各個函式吧~

1.建立服務

2.刪除服務

3.執行服務

4.service_main

5.service_ctrl

在除錯時,將令行引數設為-debug,則程式直接執行debugservice,因為我們已經提前安裝了程式,因此可以正確執行。

而當服務控制管理器中啟動服務時,則直接執行service_main。

5.編寫服務程式中遇到的一些問題及用到的一些函式

a:error c2061: syntax error : identifier 'service_status'

在stdafx.h或其他檔案中增加#include 

b:changeserviceconfig2(service,service_config_description,&info);

修改服務的描述

編寫服務程式

編寫服務程式會用到這些函式 服務主函式 servicemain startservicectrldispatcher dispatcher n.排程員 計 排程程式 計 分配器 服務控制處理函式 servicectrlhandle registerservicectrlhandle 首先建立乙個wi...

windows服務程式的編寫

windows服務程式可以設定為開機執行,具有特權。乙個服務程式編寫完成後要進行安裝,然後通過本地服務的管理工具開啟,當然如果設定為開機自動執行就不用手動開啟了。服務程式不應該雙擊執行。windows服務程式需要進行安裝,也可以在服務程式的入口函式接收傳入的引數,然後進行判斷是否進行安裝,判斷接收的...

linux 編寫服務程式

以前我們在看 unix環境高階程式設計 的時候,有專門的整章詳細介紹如何編寫乙個後台daemon程式 精靈程式 主要涉及到建立會話組,切換工作目錄,設定檔案遮蔽字,關閉不必要的描述符等多個操作。這些操作對於每乙個後台程式來說都是類似的。在linux中專門提供了乙個函式來完成這個daemon化的過程,...