MFC/VC下控制windows服务——停止服务,启动服务
Posted 我是黄老邪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC/VC下控制windows服务——停止服务,启动服务相关的知识,希望对你有一定的参考价值。
操作系统: 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);
参考文章:
以上是关于MFC/VC下控制windows服务——停止服务,启动服务的主要内容,如果未能解决你的问题,请参考以下文章