WIN32服务程序(一):创建服务

MSDN中有安装服务的例子Installing a Service(可点击进入),我们这里的创建服务,和MSDN里的例子基本上是一样的。这里做一些简单的说明:

打开控制面板,管理工具,服务。我们看到的集合了服务的界面也叫做服务控制管理器(SCM)。

用程序创建服务,首先要用OpenSCManager函数,建立一个到服务控制管理器的连接,并打开指定的数据库。将该函数的返回的指定服务控制管理器数据库的句柄传入CreateService函数。完成服务创建工作。最终的效果,程序运行之后,在服务控制管理器中,能看到我们创建的服务

程序代码如下:

 1 #include <windows.h>
 2 #include <winsvc.h>
 3 #include <stdio.h>
 4 
 5 void InstallServices();
 6 
 7 void main()
 8 {
 9 InstallServices();
10 }
11 
12 void InstallServices()
13 {
14     char name[100];
15     char info[200];
16     char path[300];
17 
18     printf("服务名称:");
19     gets(name);
20     printf("显示名称:");
21     gets(info);
22     printf("程序路径:");
23     gets(path);
24 
25     SC_HANDLE manager = NULL;
26     SC_HANDLE service = NULL;
27 
28     manager = OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE);
29 
30     if(manager == NULL)
31     {
32         printf("error!\n");
33         return;
34     }
35 
36     service = CreateService(manager,name,info,SERVICE_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS,
37                                 SERVICE_AUTO_START,SERVICE_ERROR_NORMAL,path,0,0,0,0,0);
38     if(service)
39         printf("Install Success!\n");
40     else
41         printf("Install Falid!\n");
42 
43     CloseServiceHandle(service);
44     CloseServiceHandle(manager);
45 }

最后我们打开SCM看到我们建立的服务了

posted @ 2016-01-01 15:31  廖凡  阅读(1288)  评论(0编辑  收藏  举报