Windows服务之启动、停止、暂停、继续

原文:Windows服务之启动、停止、暂停、继续

Windows服务之启动、停止、暂停、继续
2011-11-09 15:07:37
    我来说两句 
收藏
  我要投稿   
[字体:
]

 

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);

           
}

 

     
}

 

注意:服务有服务名称和显示名称之分,这里需要的是服务名称

 

时间: 2024-09-28 03:01:49

Windows服务之启动、停止、暂停、继续的相关文章

任务:消息-使用一个Windows服务来启动WebSphere MQ File Transfer Edition客

任务:消息-使用一个Windows服务来启动WebSphere MQ File Transfer Edition客户端代理 在用户的桌面上用 IBM WebSphere MQ File Transfer Edition 客 户端代理替代 FTP 客户端是向这些文件传输提供企业可见性和可管理性的一个好 方法.用户可以启动 WebSphere MQ File Transfer Edition 代理,或将其放置 到启动文件夹中让 Windows 自动启动它.但如果这个客户端代理需要在 Windows

c++-自己编写的一个windows服务不能启动

问题描述 自己编写的一个windows服务不能启动 我用C++编写了一个简单的windows服务,服务的任务是服务启动后向文件中循环写入文字,我的服务可以安装,但是启动时会显示本地计算机上的 xx服务启动后停止,我的电脑加入了公司的域,请问跟加域有关系吗? 解决方案 你是不是把代码逻辑写在OnStart里面了?你需要在OnStart中启动一个线程,并且用死循环保持住线程,将真正的逻辑写在里面. 解决方案二: 当然,否则OnStart执行完,没有保持住的线程,程序就停了.你可以google一些别人

windows 服务问题 启动后自动停止

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Diagnostics;usingSystem.ServiceProcess;usingSystem.Text;usingSystem.IO;usingSystem.Timers;namespaceWindowsServiceTime{publicpartialclassService1:

解决python写的windows服务不能启动的问题_python

报"服务没有及时响应或控制请求"的错误,改用pyinstaller生成也是不行:查资料后修改setup.py如下即可,服务名.脚本名请自行替换: 复制代码 代码如下: #!/usr/bin/python  #-*-coding:cp936-*-from distutils.core import setupimport py2exe class Target:    def __init__(self, **kw):        self.__dict__.update(kw)   

玩转Windows服务系列——服务运行、停止流程浅析

原文:玩转Windows服务系列--服务运行.停止流程浅析 通过研究Windows服务注册卸载的原理,感觉它并没有什么特别复杂的东西,Windows服务正在一步步退去它那神秘的面纱,至于是不是美女,大家可要睁大眼睛看清楚了. 接下来研究一下Windows服务的启动和停止的流程. 启动流程 启动时自然是从程序的入口点开始 extern "C" int WINAPI _tWinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/

WINDOWS服务启动应用程序看不到界面

问题描述 如题,网上搜索了很久,都说是允许桌面交互的就可以了,为什么无论是手动设置.代码设置.服务器重启依旧看不到界面,网上那些方法难道都是复制粘贴没有实际应用测试吗? 解决方案 解决方案二:看看任务管理器里,是不是用"SYSTEM"用户启动的解决方案三:引用1楼rocmemory的回复: 看看任务管理器里,是不是用"SYSTEM"用户启动的 是SYSTEM用户,但是我将服务指定用户为administrator效果还是一样的.解决方案四:XP系统,windows服务

如何创建Windows服务

创建Windows服务的项目 新建项目->C++语言->ATL->ATL项目->服务(EXE) 这样就创建了一个Windows服务项目. 生成的解决方案包含两个项目:Services.ServicesPS .其实主要是使用Services,VS2012下不清楚为什么生成了两个项目. 注册Windows服务 Windows服务第一次启动时,是需要注册的,注册方式可以通过命令行或批处理的方式. Services.exe -regserver 卸载Windows服务 既然服务需要注册,那

VS2012编译的Windows服务启动后立即停止的解决方案

原文:VS2012编译的Windows服务启动后立即停止的解决方案  ATL中的BUG,在没有COM的服务中,使用_ATL_NO_COM_SUPPORT. 并在服务中添加下面的代码 #if defined(_ATL_NO_COM_SUPPORT) HRESULT PreMessageLoop(int nShowCmd) { SetServiceStatus(SERVICE_RUNNING); return ATL::CAtlServiceModuleT< CMemoryDBModule, IDS

PowerShell批量启动/停止Windows中的Sql Server服务

在自己的开发机器上面没有把 SQL Server 服务设置成自动,因为太占内存和太影响开机时间 而在每次使用到Sql Server 的时候,还要跑到 Windows 的 控制面板里面去把服务打开,感觉操作很繁琐 所以写了个用PowerShell 打开  SQL Server 服务的小脚本   Service_sql_server.ps1:  代码如下 复制代码   $Service_Name = "MSSQL`$SQLSERVER" $Service = Get-Service $Se