织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>杂项技术>VC(MFC)>

删除Windows服务

罗索客 发布于 2008-02-28 13:53 点击:次 
对于编程高手来说,这个题目有点无聊,不过在某些情况下还是相当有用的。像我删除卸载了一个软件,结果什么都删除了,结果服务还在那儿,很不雅观,找遍注册表都找不到,只好自己动手写了个小程序来删除服务。 首先做好界面,如下: 这要用到Windows的服务管理函数组,
TAG:

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

首先做好界面,如下:


这要用到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);
}
}
前者枚举不活动的服务,并把它加入列表框,后者直接删除对应服务

(iwgh)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/200802/6908.html]
本文出处: 作者:iwgh
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容