删除Windows服务[转载]
对于编程高手来说,这个题目有点无聊,不过在某些情况下还是相当有用的。像我删除卸载了一个软件,结果什么都删除了,结果服务还在那儿,很不雅观,找遍注册表都找不到,只好自己动手写了个小程序来删除服务。
首先做好界面,如下:
这要用到Windows的服务管理函数组,首先要打开服务管理器,这要在头文件中包含winsvc.h
把SC_HANDLE sh;定义加入对话框类中。
在OnInitDialog成员函数中加入如下代码,以初始化服务管理。
sh=OpenSCManager(0,SERVICES_ACTIVE_DATABASE,SC_MANAGER_ALL_ACCESS); if(!sh) { MessageBox("faile to Open SCManager"); return FALSE; }
在OnClose成员函数中加入
CloseServiceHandle(sh);
然后处理两个按钮事件
void CdelsDlg::ListServices(){ // TODO: Add your control notification handler code here DWORD eh=0,d1,nret,i; BOOL ret; SCV.ResetContent(); ret=EnumServicesStatus(sh,SERVICE_WIN32|SERVICE_DRIVER, SERVICE_INACTIVE,ess,sizeof(ess),&d1,&nret,&eh); if(!ret) { char temp[32]; sprintf(temp,"%d",GetLastError()); MessageBox(temp); MessageBox("failed to enum services"); return; } for(i=0;i<nret;i++) { SCV.AddString(ess[i].lpDisplayName); }}
void CdelsDlg::DelService(){ // TODO: Add your control notification handler code here int i,ret; char temp[256]; i=SCV.GetCurSel(); sprintf(temp,"Do you realy want to remove the service\r\n" "%d:\t%s\r\n%s",i,ess[i].lpServiceName,ess[i].lpDisplayName); ret=MessageBox(temp,"Alert!",MB_YESNO|MB_ICONWARNING|MB_DEFBUTTON2); if(ret==IDYES) { SC_HANDLE ds; ds=OpenService(sh,ess[i].lpServiceName,SC_MANAGER_ALL_ACCESS); if(!ds) { MessageBox("Failed to Open Service"); return; } if(DeleteService(ds)) { MessageBox("Success to remove the service"); } else { sprintf(temp,"Failed to remove the service\r\nERROR CODE:\t%d", GetLastError()); MessageBox(temp); } CloseServiceHandle(ds); }}
前者枚举不活动的服务,并把它加入列表框,后者直接删除对应服务
删除Windows服务[转载]相关推荐
- 如何删除windows服务zz 重新安装PostgreSQL时删除上次遗留service的方法
如何删除windows服务2006-10-10 11:09 作者:网络安全日志( www.nslog.cn ) 日期:2006/10/10 ( 转载请保留此申明) 一.什么是Windows服 ...
- 【推荐】如何删除windows服务
一.什么是Windows服务 Windows服务也称为Windows Service,它是Windows操作系统和Windows网络的基础,属于系统核心的一部分,它支持着整个Windows的 ...
- 如何在Windows 7、8、10,Vista或XP中删除Windows服务
If you are a fan of tweaking your system and disabling services, you might find that over time your ...
- win7 删除Windows服务的方法
From: http://www.jb51.net/os/windows/25090.html 一.什么是Windows服务 Windows服务也称为Windows Service,它是Windows ...
- 如何手动删除windows服务
做一个安装程序,会安装一个windows服务,可是开始卸载没做好,没办法自动删除服务,于是查找一些手动卸载服务的方法. 一. 用sc.exe这个Windows命令 开始--运行 ...
- 卸载windows服务,删除 windows 服务 delete windows service
卸载windows服务,删除 windows 服务 一.步骤如下: 1.查看 windows 服务名: 计算机 --- 右键 --- 管理 --- 服务和应用程序 --- 服务 --- 如下图: 2. ...
- 如何把计算机管理的服务删掉,如何删除windows服务
一.什么是Windows服务 Windows服务也称为Windows Service,它是Windows操作系统和Windows网络的基础,属于系统核心的一部分,它支持着整个Windows的各种操作. ...
- 在win7下删除Windows服务的方法
win7 删除Windows服务的方法 点评:通过删除Windows服务删除隐藏在Vista系统服务中的病毒. 一.什么是Windows服务 Windows服务也称为Windows Service ...
- SC命令创建和删除windows服务
创建和删除服务需要使用 SC 工具 $ sc help 描述:SC 是用来与服务控制管理器和服务进行通信的命令行程序. 用法:sc <server> [command] [service ...
最新文章
- 3dmax全局材质灯光细分插件_3Dmax渲染Vray渲染提速优化技巧
- 闰秒对数据库和linux的影响
- asm 查看 数据文件 修改 时间_ASM磁盘组ORA15042故障处理案例一:NORMAL磁盘组下失败组离线后ORA15042报错的处理...
- CentOS7配置samba共享文件系统
- C# 未能加载文件或程序集“ Newtonsoft.Json” Json格式错误
- 从OpenGL ES 2.0到Direct3D 11.1之路
- 什么是webpack? ----(webpack入门)
- java实现https请求单向认证、双向认证
- eclipse安装SVN插件(2020最新,亲测可用)
- 04-乐优商城项目搭建
- ncnn笔记:02)ncnn之JNI入门初窥
- OpenCV笔记_20(1)基于dlib进行人脸识别( 图片检测 )
- thingjs这个3D js库怎么样?
- 读懂西瓜书 14 : 概率图模型
- Android渐变背景色
- 《思考的技巧》- 学习总结
- 零经验小白的独游历程——U3d学习经验与教程分享
- 红黑树详解三:红黑树的删除
- 年底找工作,怎么解释离职的原因?
- 购买Blender cloud支援今年官方开源电影Gooseberry
热门文章
- [Java 基础]接口
- SQL SERVER数据库多条件查询
- Flink SQL Client注册JAVA UDF完整流程
- SecureCRT出现 libpython2.7.so.1.0: cannot open shared object file
- mysql优化积累(持续更新中)
- matlab和python中的svd分解的区别
- ubuntu下面navicat连接本地数据库出现2003 - Can't connect to MySQL server on 'localhost'(10061 Unknown errort;)
- 数学狂想曲(十)——复变函数, 平稳离散时间随机过程, 功率谱
- 机器学习(十一)——机器学习中的矩阵方法(1)LU分解、QR分解
- vue 附件上传获取附近内容_vue实现文件上传功能