程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> WinNT下Service的編制

WinNT下Service的編制

編輯:vc教程

Windows NT與Windows 9x有一個非常重要的區別,即Windows NT提供了很多功能強大的Service(服務)。這些Service可以隨著NT的啟動而自啟動,也可以讓用戶通過控制面板啟動,還可以被Win32應用程序起停。甚至在沒有用戶登錄系統的情況下,這些Service也能執行。許多FTP、WWW服務器和數據庫就是以Service的形式存在於NT上,從而實現了無人值守。就連最新版的“黑客”程序Back 2000也是以Service形式在NT上藏身的。由於Service的編程較復雜,許多開發者想開發自己的Service但往往都望而卻步。鑒於此,下面我們就從頭到尾來構造一個全新的Service,讀者只要在程序中注明的地方加上自己的代碼,那麼就可以輕松擁有一個自己的Service。在編寫Service之前,先介紹一下幾個重要的函數:

1. SC_HANDLE OpenSCManager( LPCTSTR lpMachineName,

LPCTSTR lpDatabaseName, DWORD dwDesiredAccess)

OpenSCManager 函數打開指定計算機上的service control

manager database。其中參數lpMachineName指定計算機名,若為空則指定為本機。LpDatabaseName為指定要打開的service control manager database名, 默認為空。dwDesiredAccess指定操作的權限, 可以為下面取值之一:

SC_MANAGER_ALL_ACCESS //所有權限

SC_MANAGER_CONNECT //允許連接到service control manager database

SC_MANAGER_CREATE_SERVICE //允許創建服務對象並把它加入database

SC_MANAGER_ENUMERATE_SERVICE //允許枚舉database 中的Service

SC_MANAGER_LOCK //允許鎖住database

SC_MANAGER_QUERY_LOCK_STATUS //允許查詢database的封鎖信息

函數執行成功則返回一個指向service control manager

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved