Windows服务之启动、停止、暂停、继续
2011-11-07 22:34
447 查看
SC_HANDLE scm,sHandle;
SERVICE_STATUS ServiceStatus;
scm=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if (scm!=NULL)
{
//启动service
sHandle=OpenService(scm, "GwbnService",SERVICE_START);
if(sHandle!=NULL)
{
StartService(sHandle,0,NULL))//开始Service
}
//停止Service
sHandle=OpenService(scm, "GwbnService",SERVICE_STOP|SERVICE_QUERY_STATUS);
if(sHandle!=NULL)
QueryServiceStatus(sHandle,&ServiceStatus);
if(ServiceStatus.dwCurrentState == SERVICE_RUNNING || ServiceStatus.dwCurrentState == SERVICE_PAUSED)
{
ControlService(sHandle,SERVICE_CONTROL_STOP,&ServiceStatus);
}
//暂停Service
sHandle=OpenService(scm, "GwbnService",SERVICE_PAUSE_CONTINUE|SERVICE_QUERY_STATUS);
if(sHandle!=NULL)
QueryServiceStatus(sHandle,&ServiceStatus);
if(ServiceStatus.dwCurrentState == SERVICE_RUNNING)
{
ControlService(sHandle,SERVICE_CONTROL_PAUSE,&ServiceStatus);
}
//继续Service
sHandle=OpenService(scm, "GwbnService",SERVICE_PAUSE_CONTINUE|SERVICE_QUERY_STATUS);
if(sHandle!=NULL)
QueryServiceStatus(sHandle,&ServiceStatus);
if(ServiceStatus.dwCurrentState == SERVICE_PAUSED)
{
ControlService(sHandle,SERVICE_CONTROL_CONTINUE,&ServiceStatus);
}
}
注意:服务有服务名称和显示名称之分,这里需要的是服务名称
SERVICE_STATUS ServiceStatus;
scm=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if (scm!=NULL)
{
//启动service
sHandle=OpenService(scm, "GwbnService",SERVICE_START);
if(sHandle!=NULL)
{
StartService(sHandle,0,NULL))//开始Service
}
//停止Service
sHandle=OpenService(scm, "GwbnService",SERVICE_STOP|SERVICE_QUERY_STATUS);
if(sHandle!=NULL)
QueryServiceStatus(sHandle,&ServiceStatus);
if(ServiceStatus.dwCurrentState == SERVICE_RUNNING || ServiceStatus.dwCurrentState == SERVICE_PAUSED)
{
ControlService(sHandle,SERVICE_CONTROL_STOP,&ServiceStatus);
}
//暂停Service
sHandle=OpenService(scm, "GwbnService",SERVICE_PAUSE_CONTINUE|SERVICE_QUERY_STATUS);
if(sHandle!=NULL)
QueryServiceStatus(sHandle,&ServiceStatus);
if(ServiceStatus.dwCurrentState == SERVICE_RUNNING)
{
ControlService(sHandle,SERVICE_CONTROL_PAUSE,&ServiceStatus);
}
//继续Service
sHandle=OpenService(scm, "GwbnService",SERVICE_PAUSE_CONTINUE|SERVICE_QUERY_STATUS);
if(sHandle!=NULL)
QueryServiceStatus(sHandle,&ServiceStatus);
if(ServiceStatus.dwCurrentState == SERVICE_PAUSED)
{
ControlService(sHandle,SERVICE_CONTROL_CONTINUE,&ServiceStatus);
}
}
注意:服务有服务名称和显示名称之分,这里需要的是服务名称
相关文章推荐
- Windows服务之启动、停止、暂停、继续
- windows:服务启动、暂停、停止按钮不能点击,是灰色如何解决
- Windows 共享无线上网 无法启动ICS服务解决方法(WIN7 ICS服务启动后停止)
- Windows启动及停止服务
- Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作实例
- 安装 启动 停止 卸载 Windows服务 c#
- windows 10安装mysql 5.7后,启动服务提示“本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止。
- 启动和停止Windows服务程序需向SCM汇报状态
- C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service
- C# windows服务:通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)
- Windows下启动停止Oracle11g服务
- Windows服务监视,如果停止则启动
- 在windows下使用批处理启动停止服务
- windows下快速启动和停止服务
- C#Windows服务:一些方法(启动、停止等)
- MFC/VC下控制windows服务——停止服务,启动服务
- 本地计算机上的XXX服务启动后又停止了——Windows Service服务调试(二)
- C#对Windows服务组的启动与停止
- C#Windows服务:一些方法(启动、停止等)
- C++实现系统服务暂停、停止、启动