編寫服務程式會用到這些函式:
*服務主函式
servicemain()
startservicectrldispatcher() //dispatcher n. 排程員;[計] 排程程式;[計] 分配器
*服務控制處理函式
servicectrlhandle()
registerservicectrlhandle()
首先建立乙個win32的空專案,然後新增原始檔,編寫**
然後生成解決方案,為了後來使用cmd敲路徑比較方便,把生成的.exe檔案複製到c盤的test資料夾下吧,# include
# include
# include
# define file_path "e:\\log.txt"
# define sleep_time 5000
void servicemain(int argc, char **argv);//服務主函式
void winapi servicectrlhandler(dword opcode);//服務控制函式
service_status m_servicestatus;//服務狀態
service_status_handle m_servicestatushandle;//服務狀態控制代碼
int writetolog(char *str);
bool brunning = true;
int main() //服務程式入口也是main
void servicemain(int argc, char **argv)
writetolog("registerservicectrlhandler success");
m_servicestatus.dwcurrentstate = service_running;//註冊後就執行了
//將服務狀態報告給服務控制器
setservicestatus(m_servicestatushandle, &m_servicestatus);
brunning = true;
//這個服務程式的例子就用來檢查電腦記憶體大小吧
memset(&memstatus,'\0',100);
while (brunning)
writetolog("service stopped");
}
//當我們做好乙個服務程式後,服務程式就會安裝,可以在服務控制面板裡找到,比如停止,啟用服務等都是在
//服務控制函式裡進行的
void winapi servicectrlhandler(dword opcode)
setservicestatus(m_servicestatushandle,&m_servicestatus);
}int writetolog(char *str)
這裡我編寫的服務名字是」服務名稱」,然後安裝服務,如果現在直接去看(右擊計算機-管理-計算機管理(本地)-雙擊服務)的話,
是看不到的,這裡可以用sc.exe工具去完成
按下win+r鍵,輸入cmd,回車,然後輸入sc,回車,然後輸入:
sc create 服務名稱 binpath= c:\test\編寫服務程式.exe
create表示根據自己寫的服務程式建立乙個服務,第三個是服務的名字,注意binpath和等於號之間有空格,後面就是解決方案生成的.exe檔案所在路徑了
然後再去檢視,注意要 操作-重新整理
這裡要注意一點, !!可能會提示失敗,訪問許可權不足,可以右擊計算機-管理-計算機管理(本地)-系統工具-本地使用者和組-使用者-雙擊administrator,將賬戶已禁用的勾去掉,重啟就可以了,或者去登錄檔改也行,具體可以自己去搜
//安裝後,在服務裡重新整理一下就可以看到編寫的服務了
sc start 服務名稱 //啟用服務
sc delete 服務名稱 //刪除服務
這裡例項的服務程式是用來檢查可用執行記憶體大小的,將結果寫入日誌(文字檔案),啟用服務後,每五秒就迴圈檢查一次並寫入日誌,這裡是在e盤,
啟用服務:
關閉該文字,再開啟
關閉服務
刪除服務的話只有用sc了,
這裡刪除不了,輸入sc delete 服務名稱
回車就可以刪除了
linux 編寫服務程式
以前我們在看 unix環境高階程式設計 的時候,有專門的整章詳細介紹如何編寫乙個後台daemon程式 精靈程式 主要涉及到建立會話組,切換工作目錄,設定檔案遮蔽字,關閉不必要的描述符等多個操作。這些操作對於每乙個後台程式來說都是類似的。在linux中專門提供了乙個函式來完成這個daemon化的過程,...
Windows服務程式編寫
windows服務程式編寫 2014年8月17日16 08 55 1 用vs2008新建乙個空的控制台工程。如下 include include ifdef unicode define t s l s else define t s s endif define sleep time 5000 間...
windows服務程式的編寫
windows服務程式可以設定為開機執行,具有特權。乙個服務程式編寫完成後要進行安裝,然後通過本地服務的管理工具開啟,當然如果設定為開機自動執行就不用手動開啟了。服務程式不應該雙擊執行。windows服務程式需要進行安裝,也可以在服務程式的入口函式接收傳入的引數,然後進行判斷是否進行安裝,判斷接收的...