MFC如何停止处于正在启动状态的服务。。

时间:2022-12-02 16:05:35
如果是正在运行的服务,我调用(sc stop 服务名称)命令即可停止该服务,但是处于正在启动状态下服务对该命令不起作用。如何用MFC提供的API或者C++代码实现停止处于启动状态下的服务?谢谢

3 个解决方案

#1


即使打开任务管理器,处于正在启动的服务右键也停止不了

#2


你获取状态啊,如果是正在启动中的,就等启动完了再停止

#3


C:\> sc /?

错误:  未知命令

描述:
        SC 是用于与
        服务控制管理器和服务进行通信的命令行程序。
用法:
        sc <server> [command] [service name] <option1> <option2>...


        选项 <server> 的格式为 "\\ServerName"
        可以键入 "sc [command]" 以获得命令的进一步帮助
        命令:
          query-----------查询服务的状态, 或
                          枚举服务类型的状态。
          queryex---------查询服务的扩展状态, 或
                          枚举服务类型的状态。
          start-----------启动服务。
          pause-----------向服务发送 PAUSE 控制请求。
          interrogate-----向服务发送 INTERROGATE 控制请求。
          continue--------向服务发送 CONTINUE 控制请求。
          stop------------向服务发送 STOP 请求。
          config----------更改服务的配置(永久)。
          description-----更改服务的描述。
          failure---------更改服务失败时所进行的操作。
          sidtype---------更改服务的服务 SID 类型。
          qc--------------查询服务的配置信息。
          qdescription----查询服务的描述。
          qfailure--------查询服务失败时所进行的操作。
          qsidtype--------查询服务的服务 SID 类型。
          delete----------(从注册表)删除服务。
          create----------创建服务(将其添加到注册表)。
          control---------向服务发送控制。
          sdshow----------显示服务的安全描述符。
          sdset-----------设置服务的安全描述符。
          showsid---------显示与
                          任意名称相对应的服务 SID 字符串。
          GetDisplayName--获取服务的 DisplayName。
          GetKeyName------获取服务的 ServiceKeyName。
          EnumDepend------枚举服务的依存关系。

        下列命令不要求服务名称:
        sc <server> <command> <option>
          boot------------(ok | bad) 表明是否将最后一次启动
                          保存为最后一次的正确启动配置
          Lock------------锁定服务数据库
          QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
        sc start MyService

是否要查看 QUERY 和 QUERYEX 命令的帮助? [ y | n ]:
n

#1


即使打开任务管理器,处于正在启动的服务右键也停止不了

#2


你获取状态啊,如果是正在启动中的,就等启动完了再停止

#3


C:\> sc /?

错误:  未知命令

描述:
        SC 是用于与
        服务控制管理器和服务进行通信的命令行程序。
用法:
        sc <server> [command] [service name] <option1> <option2>...


        选项 <server> 的格式为 "\\ServerName"
        可以键入 "sc [command]" 以获得命令的进一步帮助
        命令:
          query-----------查询服务的状态, 或
                          枚举服务类型的状态。
          queryex---------查询服务的扩展状态, 或
                          枚举服务类型的状态。
          start-----------启动服务。
          pause-----------向服务发送 PAUSE 控制请求。
          interrogate-----向服务发送 INTERROGATE 控制请求。
          continue--------向服务发送 CONTINUE 控制请求。
          stop------------向服务发送 STOP 请求。
          config----------更改服务的配置(永久)。
          description-----更改服务的描述。
          failure---------更改服务失败时所进行的操作。
          sidtype---------更改服务的服务 SID 类型。
          qc--------------查询服务的配置信息。
          qdescription----查询服务的描述。
          qfailure--------查询服务失败时所进行的操作。
          qsidtype--------查询服务的服务 SID 类型。
          delete----------(从注册表)删除服务。
          create----------创建服务(将其添加到注册表)。
          control---------向服务发送控制。
          sdshow----------显示服务的安全描述符。
          sdset-----------设置服务的安全描述符。
          showsid---------显示与
                          任意名称相对应的服务 SID 字符串。
          GetDisplayName--获取服务的 DisplayName。
          GetKeyName------获取服务的 ServiceKeyName。
          EnumDepend------枚举服务的依存关系。

        下列命令不要求服务名称:
        sc <server> <command> <option>
          boot------------(ok | bad) 表明是否将最后一次启动
                          保存为最后一次的正确启动配置
          Lock------------锁定服务数据库
          QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
        sc start MyService

是否要查看 QUERY 和 QUERYEX 命令的帮助? [ y | n ]:
n