打开windows服务

#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); }
原文地址:https://www.cnblogs.com/2018shawn/p/9429734.html