WIN32服务程序(二):卸载服务
2016-01-01 15:36
447 查看
卸载服务的过程是这样的,用OpenSCManager打开SCM,使用OpenService打开准备卸载的服务,通过QueryServiceStatus查询该服务的状态是否停止,如果否,则先停止该服务ControlService,最后用DeleteService删除服务。
通过运行这个程序,输入服务名称,我们可以将上一篇建立的服务程序删掉了
#include <windows.h> #include <winsvc.h> #include <stdio.h> void UninstallServices(); void main() { UninstallServices(); } void UninstallServices() { char name[100]; SC_HANDLE scm; SC_HANDLE service; SERVICE_STATUS status; printf("服务名称:"); scanf("%s",&name); if((scm = OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE)) == NULL) printf("error!\n"); service = OpenService(scm,name,SERVICE_ALL_ACCESS | DELETE); BOOL isSuccess = QueryServiceStatus(service,&status); if(status.dwCurrentState != SERVICE_STOPPED) { isSuccess = ControlService(service,SERVICE_CONTROL_STOP,&status); Sleep(500); } isSuccess = DeleteService(service); if(!isSuccess) printf("Uninstall Falid!\n"); else printf("Uninstall Success!\n"); CloseServiceHandle(service); CloseServiceHandle(scm); }
通过运行这个程序,输入服务名称,我们可以将上一篇建立的服务程序删掉了
相关文章推荐
- dns搭建
- java socket 编程
- Android Studio安装、配置
- Linux下rsync增加SSH端口号的用法
- JavaScript(1)
- lnmp搭建
- 大数据学习之路
- 数据库之运算符和函数
- 面向对象设计原则
- JAVA图形界面(GUI)之布局管理器
- [从头学数学] 第20节 100以内的加法和减法(二)
- codevs 1028 花店橱窗布置
- ECharts 学习笔记(1)-HelloWorld
- 数据结构_2:链表:C语言
- WIN32服务程序(一):创建服务
- mysql 存储过程示例,有参有返回值,使用到了判断,循环,游标,临时表,事务
- 成员变量内存分析
- 详解Sql基础语法
- ios文件和文件夹NSFileManager类
- 倒三角形