教你如何建立wow服务程序.doc

教你如何建立wow服务程序.doc

ID:50239672

大小:58.00 KB

页数:6页

时间:2020-03-07

教你如何建立wow服务程序.doc_第1页
教你如何建立wow服务程序.doc_第2页
教你如何建立wow服务程序.doc_第3页
教你如何建立wow服务程序.doc_第4页
教你如何建立wow服务程序.doc_第5页
资源描述:

《教你如何建立wow服务程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、windowsNT与Windows9x有一个非常重要的区别,即WindowsNT提供了很多功能强大的Service(服务)。这些Service可以随着NT的启动而自启动,也可以让用户通过控制面板启动,还可以被Win32应用程序起停。甚至在没有用户登录系统的情况下,这些Service也能执行。许多FTP、WWW服务器和数据库就是以Service的形式存在于NT上,从而实现了无人值守。就连最新版的“黑客”程序BackOrifice2000也是以Service形式在NT上藏身的。由于Service的编程较复杂,许多开发者想开发自己的Service

2、但往往都望而却步。鉴于此,下面我们就从头到尾来构造一个全新的Service,读者只要在程序中注明的地方加上自己的代码,那么就可以轻松拥有一个自己的Service。在编写Service之前,先介绍一下几个重要的函数:----1.SC_HANDLEOpenSCManager(LPCTSTRlpMachineName,LPCTSTRlpDatabaseName,DWORDdwDesiredAccess)----OpenSCManager函数打开指定计算机上的servicecontrolmanagerdatabase。其中参数lpMachineNa

3、me指定计算机名,若为空则指定为本机。LpDatabaseName为指定要打开的servicecontrolmanagerdatabase名,默认为空。dwDesiredAccess指定操作的权限,可以为下面取值之一:----SC_MANAGER_ALL_ACCESS//所有权限----SC_MANAGER_CONNECT//允许连接到servicecontrolmanagerdatabase----SC_MANAGER_CREATE_SERVICE//允许创建服务对象并把它加入database----SC_MANAGER_ENUMERAT

4、E_SERVICE//允许枚举database中的Service----SC_MANAGER_LOCK//允许锁住database----SC_MANAGER_QUERY_LOCK_STATUS//允许查询database的封锁信息----函数执行成功则返回一个指向servicecontrolmanagerdatabase的句柄,失败则返回NULL。注意:WINNT通过一个名为servicecontrolmanagerdatabase的数据库来管理所有的Service,因此对Service的任何操作都应打开此数据库。----2.SC_HAN

5、DLECreateService(SC_HANDLEhSCManager,LPCTSTRlpServiceName,LPCTSTRlpDisplayName,DWORDdwDesiredAccess,DWORDdwServiceType,DWORDdwStartType,DWORDdwErrorControl,LPCTSTRlpBinaryPathName,LPCTSTRlpLoadOrderGroup,LPDWORDlpdwTagId,LPCTSTRlpDependencies,LPCTSTRlpServiceStartName,LPCT

6、STRlpPassword)----CreatService函数产生一个新的SERVICE。其中参数hSCManager为指向servicecontrolmanagerdatabase的句柄,由OpenSCManager返回。LpServiceName为SERVICE的名字,lpDisplayName为Service显示用名,dwDesiredAccess是访问权限,本程序中用SERVICE_ALL_ACCESS。wServiceType,指明SERVICE类型,本程序中用SERVICE_WIN32_OWN_PROCESS

7、SERVICE_

8、INTERACTIVE_PROCESS。dwStartType为Service启动方式,本程序采用自启动,即dwStartType等于SERVICE_AUTO_START。dwErrorControl说明当Service在启动中出错时采取什么动作,本程序采用SERVICE_ERROR_IGNORE即忽约错误,读者可以改为其他的。LpBinaryPathName指明Service本体程序的路径名。剩下的五个参数一般可设为NULL。如函数调用成功则返回这个新Service的句柄,失败则返回NULL。与此函数对应的是DeleteService(h

9、Service),它删除指定的Service。----3.SC_HANDLEOpenService(SC_HANDLEhSCManager,LPCTSTRlpServiceNam

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。