删除Windows服务

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

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

   首先做好界面,如下:

   

    这要用到 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"  "%d: %s%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 serviceERROR CODE: %d",    GetLastError());   MessageBox(temp);  }  CloseServiceHandle(ds); }} 前者枚举不活动的 服务,并把它加入列表框,后者直接 删除对应 服务 <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值