对于编程高手来说,这个题目有点无聊,不过在某些情况下还是相当有用的。像我删除卸载了一个软件,结果什么都删除了,结果服务还在那儿,很不雅观,找遍注册表都找不到,只好自己动手写了个小程序来删除服务。

首先做好界面,如下:

这要用到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服务[转载]相关推荐

  1. 如何删除windows服务zz 重新安装PostgreSQL时删除上次遗留service的方法

    如何删除windows服务2006-10-10 11:09     作者:网络安全日志( www.nslog.cn ) 日期:2006/10/10  ( 转载请保留此申明) 一.什么是Windows服 ...

  2. 【推荐】如何删除windows服务

    一.什么是Windows服务      Windows服务也称为Windows Service,它是Windows操作系统和Windows网络的基础,属于系统核心的一部分,它支持着整个Windows的 ...

  3. 如何在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 ...

  4. win7 删除Windows服务的方法

    From: http://www.jb51.net/os/windows/25090.html 一.什么是Windows服务 Windows服务也称为Windows Service,它是Windows ...

  5. 如何手动删除windows服务

    做一个安装程序,会安装一个windows服务,可是开始卸载没做好,没办法自动删除服务,于是查找一些手动卸载服务的方法. 一.             用sc.exe这个Windows命令 开始--运行 ...

  6. 卸载windows服务,删除 windows 服务 delete windows service

    卸载windows服务,删除 windows 服务 一.步骤如下: 1.查看 windows 服务名: 计算机 --- 右键 --- 管理 --- 服务和应用程序 --- 服务 --- 如下图: 2. ...

  7. 如何把计算机管理的服务删掉,如何删除windows服务

    一.什么是Windows服务 Windows服务也称为Windows Service,它是Windows操作系统和Windows网络的基础,属于系统核心的一部分,它支持着整个Windows的各种操作. ...

  8. 在win7下删除Windows服务的方法

    win7 删除Windows服务的方法 点评:通过删除Windows服务删除隐藏在Vista系统服务中的病毒. 一.什么是Windows服务   Windows服务也称为Windows Service ...

  9. SC命令创建和删除windows服务

    创建和删除服务需要使用 SC 工具 $ sc help 描述:SC 是用来与服务控制管理器和服务进行通信的命令行程序. 用法:sc <server> [command] [service ...

最新文章

  1. 3dmax全局材质灯光细分插件_3Dmax渲染Vray渲染提速优化技巧
  2. 闰秒对数据库和linux的影响
  3. asm 查看 数据文件 修改 时间_ASM磁盘组ORA15042故障处理案例一:NORMAL磁盘组下失败组离线后ORA15042报错的处理...
  4. CentOS7配置samba共享文件系统
  5. C# 未能加载文件或程序集“ Newtonsoft.Json” Json格式错误
  6. 从OpenGL ES 2.0到Direct3D 11.1之路
  7. 什么是webpack? ----(webpack入门)
  8. java实现https请求单向认证、双向认证
  9. eclipse安装SVN插件(2020最新,亲测可用)
  10. 04-乐优商城项目搭建
  11. ncnn笔记:02)ncnn之JNI入门初窥
  12. OpenCV笔记_20(1)基于dlib进行人脸识别( 图片检测 )
  13. thingjs这个3D js库怎么样?
  14. 读懂西瓜书 14 : 概率图模型
  15. Android渐变背景色
  16. 《思考的技巧》- 学习总结
  17. 零经验小白的独游历程——U3d学习经验与教程分享
  18. 红黑树详解三:红黑树的删除
  19. 年底找工作,怎么解释离职的原因?
  20. 购买Blender cloud支援今年官方开源电影Gooseberry

热门文章

  1. [Java 基础]接口
  2. SQL SERVER数据库多条件查询
  3. Flink SQL Client注册JAVA UDF完整流程
  4. SecureCRT出现 libpython2.7.so.1.0: cannot open shared object file
  5. mysql优化积累(持续更新中)
  6. matlab和python中的svd分解的区别
  7. ubuntu下面navicat连接本地数据库出现2003 - Can't connect to MySQL server on 'localhost'(10061 Unknown errort;)
  8. 数学狂想曲(十)——复变函数, 平稳离散时间随机过程, 功率谱
  9. 机器学习(十一)——机器学习中的矩阵方法(1)LU分解、QR分解
  10. vue 附件上传获取附近内容_vue实现文件上传功能