WIN32服务程序(二):卸载服务

卸载服务的过程是这样的,用OpenSCManager打开SCM,使用OpenService打开准备卸载的服务,通过QueryServiceStatus查询该服务的状态是否停止,如果否,则先停止该服务ControlService,最后用DeleteService删除服务。

 1 #include <windows.h>
 2 #include <winsvc.h>
 3 #include <stdio.h>
 4 
 5 void UninstallServices();
 6 void main()
 7 {
 8     UninstallServices();
 9 }
10 
11 
12 void UninstallServices()
13 {
14     char name[100];
15     SC_HANDLE scm;
16     SC_HANDLE service;
17     SERVICE_STATUS status;
18 
19     printf("服务名称:");
20     scanf("%s",&name);
21 
22     if((scm = OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE)) == NULL)
23     printf("error!\n");
24 
25     service = OpenService(scm,name,SERVICE_ALL_ACCESS | DELETE);
26     BOOL isSuccess = QueryServiceStatus(service,&status);
27     if(status.dwCurrentState != SERVICE_STOPPED)
28     {
29         isSuccess = ControlService(service,SERVICE_CONTROL_STOP,&status);
30         Sleep(500);
31     }
32     isSuccess = DeleteService(service);
33     if(!isSuccess)
34         printf("Uninstall Falid!\n");
35     else
36         printf("Uninstall Success!\n");
37 
38     CloseServiceHandle(service);
39     CloseServiceHandle(scm);
40 }

通过运行这个程序,输入服务名称,我们可以将上一篇建立的服务程序删掉了

转载于:https://www.cnblogs.com/lanf/p/5093372.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值