




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用用 VC 建建立立 Service 服服务务应应用用程程序序 下载源代码 本文主要介绍了 OpenSCManager CreateService OpenService ControlService DeleteServi ce RegisterServiceCtrlHandler SetServiceStatus StartServiceCtrlDispatche r 等操作服务程序的主要几个API 的用法 具体的函数参数大家可以查阅 MSDN 为什么要使用服务应该程序呢 服务程序就像系统的一些服务一样 能够自动 地启动 并执行相应的操作 而且因为服务程序的在层次上和一般的应用程序不同 其能够在系统启动时就自动地运行 而不像一般的应用程序那样一定要在登陆后才 能运行 这些就是服务的一些好处了 如果你也想你的程序具有这样的功能 那么 你就可以建立一个服务应用程序了 下面就跟着我一步一步地教你怎么去创建一个 服务应用程序吧 一 建立 Win32 Application 应用程序 当然你也可以建立其它的应用程序 但 服务一般是没有用户界面的 并命名为 ServiceTest 二 定义全局函数变量 这里主要是设置服务句柄和状态 BOOL IsInstalled BOOL Install BOOL Uninstall void LogEvent LPCTSTR pszFormat void WINAPI ServiceMain void WINAPI ServiceStrl DWORD dwOpcode TCHAR szServiceName T ServiceTest BOOL bInstall SERVICE STATUS HANDLE hServiceStatus SERVICE STATUS status DWORD dwThreadID 三 添加 Init 初始化函数 void Init hServiceStatus NULL status dwServiceType SERVICE WIN32 OWN PROCESS status dwCurrentState SERVICE STOPPED tatus dwControlsAccepted SERVICE ACCEPT STOP status dwWin32ExitCode 0 status dwServiceSpecificExitCode 0 status dwCheckPoint 0 status dwWaitHint 0 四 添加安装和删除服务函数 这里主要是用到了四个函数 OpenSCManager 和 CreateService OpenSCManager 用于打开服务控制管理器 CreateService 用于创建服务 OpenService 用于打开已有的服务 返回该服务的句柄 ControlService 则用于控制已打开的服务状态 这里是让服务停止后才删除 DeleteService 用于删除指定服务 BOOL Install 这里列出主要的两个函数 其它的可以在代码里找 打开服务控制管理器 OpenSCManager NULL NULL SC MANAGER ALL ACCESS 创建服务 SC HANDLE hService CreateService hSCM szServiceName szServiceName SERVICE ALL ACCESS SERVICE WIN32 OWN PROCESS SERVICE DEMAND START SERVICE ERROR NORMAL szFilePath NULL NULL T NULL NULL CloseServiceHandle hService CloseServiceHandle hSCM BOOL Uninstall 这里列出主要的两个函数 其它的可以在代码里找 打开服务控制管理器 OpenSCManager NULL NULL SC MANAGER ALL ACCESS 打开服务 OpenService hSCM szServiceName SERVICE STOP DELETE 停止服务 ControlService hService SERVICE CONTROL STOP 删除服务 DeleteService hService 五 添加服务主线程函数和控制函数 这里调用 RegisterServiceCtrlHandler 来注册服务的控制函数 这里要设置status dwControlsAccepted 为 SERVICE ACCEPT STOP 否则你不能控制这个服务的状态 void WINAPI ServiceMain Register the control request handler status dwCurrentState SERVICE START PENDING status dwControlsAccepted SERVICE ACCEPT STOP 这个要 使用 否则你不能控制 注册服务控制 hServiceStatus RegisterServiceCtrlHandler szServiceName ServiceStrl if hServiceStatus NULL LogEvent T Handler not installed return SetServiceStatus hServiceStatus status dwWin32ExitCode S OK status dwCheckPoint 0 status dwWaitHint 0 status dwCurrentState SERVICE RUNNING SetServiceStatus hServiceStatus 模拟服务的运行 10 后自动退出 应用时将主要任务放于此即可 int i 0 while i 10 Sleep 1000 i status dwCurrentState SERVICE STOPPED SetServiceStatus hServiceStatus LogEvent T Service stopped 六 在主线程函数里注册控制函数和程序执行主体 这里主要是说明这就是程序的 执行体 void WINAPI ServiceMain 模拟服务的运行 10 后自动退出 应用时将主要任务放于此即可 int i 0 while i 10 Sleep 1000 i 七 最后 要在main 函数里注册添加安装 删除 注册主函数 int APIENTRY WinMain HINSTANCE hInstance HINSTANCE hPrevInstance LPSTR lpCmdLine int nCmdShow Init dwThreadID GetCurrentThreadId SERVICE TABLE ENTRY st szServiceName LPSERVICE MAIN FUNCTION ServiceMain NULL NULL if stricmp lpCmdLine install 0 Install else if stricmp lpCmdLine uninstall 0 Uninstall else if StartServiceCtrlDispatcher st LogEvent T Register Service Main Function Error
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2310-2025温湿度报警器校准规范
- GB/T 1777-2025超细钯粉
- 2025甘肃平凉市崆峒区零工市场招聘公益性岗位考前自测高频考点模拟试题及一套答案详解
- 2025年国网河南省电力公司子公司18家单位招聘高校毕业生180人(第三批)考前自测高频考点模拟试题及一套参考答案详解
- 2025年淮南寿县安徽寿州控股集团有限公司人才引进10人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年湖南长沙市望城区公开招聘事业单位工作人员31人模拟试卷及参考答案详解
- 安全培训教室配备标准课件
- 安全培训教室规划课件
- 2025昆明市第三人民医院重症医学科见习护理人员招聘(7人)考前自测高频考点模拟试题完整参考答案详解
- 广播电视导论课件
- 家电清洗培训
- 汽车零部件制造行业发展报告
- 修井机培训课件
- 医学科普文章写作技巧
- 物业高端化规定
- 采暖补贴审计方案(3篇)
- 锂电池公司管理制度
- GB/T 17948.7-2025旋转电机绝缘结构功能性评定总则
- 农光互补光伏发电项目发展趋势与前景分析
- 老人外出免责协议书
- 数字信号处理理论与应用练习题集
评论
0/150
提交评论