MFC/VC下控制windows服务——停止服务,启动服务

来源:互联网 发布:校园网络搭建需求分析 编辑:程序博客网 时间:2024/05/17 23:47

操作系统: Windows7 64位(经测试,Windows10不能用)

运行环境: Visual Studio 10

文件编码: Unicode


需要添加的头文件:

#include <winsvc.h>

void CXXXDlg::ServiceRun()   {   SERVICE_STATUS ssStatus; //获得ServiceControl Manager的句柄   SC_HANDLE shServiceManager = OpenSCManager(NULL,SERVICES_ACTIVE_DATABASE,SC_MANAGER_ALL_ACCESS);   //然后获得用户希望检查的服务的句柄   SC_HANDLE shDefineService = OpenService(shServiceManager,_T("Tomcat8"),SERVICE_ALL_ACCESS);   if((QueryServiceStatus(shDefineService,&ssStatus))==0)  {AfxMessageBox(_T("无法确定服务状态"),MB_ICONINFORMATION);}  //下面的代码用于检查服务是否被停止,如果停止则打开此服务   SC_HANDLE stService;   if(ssStatus.dwCurrentState==SERVICE_STOPPED)   {   //AfxMessageBox("启动Tomcat8服务",MB_ICONINFORMATION);   stService = OpenService(shServiceManager,_T("Tomcat8"),SERVICE_START|GENERIC_EXECUTE);   StartService(stService,0,NULL);   CloseServiceHandle(stService);   }   //else  //如果是运行状态就停止//{   ////AfxMessageBox("停止Tomcat8服务",MB_ICONINFORMATION);   //stService=OpenService(shServiceManager,"Tomcat8",SERVICE_STOP|GENERIC_EXECUTE);   //ControlService(stService,SERVICE_CONTROL_STOP,&ssStatus);   //CloseServiceHandle(stService);   //}   CloseServiceHandle(shDefineService);   CloseServiceHandle(shServiceManager);    } 

参考文章:

        C++ 安装、删除、启动服务

                        vc++启动和停止服务【转】

1 0