首页 > 解决方案 > Excel VBA:停止和启动后台服务

问题描述

是否可以停止和启动后台服务。

存在干扰 Excel 插件的第三方服务。我想在运行代码时暂时停止它,然后在最后重新打开它。

标签: excelvbaservice

解决方案


每当你想做这样的事情时,使用“WMI”的谷歌可能会给你一些有用的东西。

例如 -

来自: https ://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/stopservice-method-in-class-win32-service

Set ServiceSet = GetObject("winmgmts:").ExecQuery( _
          "select * from Win32_Service where Name='ClipSrv'")

for each Service in ServiceSet
 RetVal = Service.StopService()
 if RetVal = 0 then 
  WScript.Echo "Service stopped" 
 elseif RetVal = 5 then 
  WScript.Echo "Service already stopped" 
 end if
next

同样:https ://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/startservice-method-in-class-win32-service

Set ServiceSet = GetObject("winmgmts:").ExecQuery( _
           "select * from Win32_Service where Name='ClipSrv'")

for each Service in ServiceSet
 RetVal = Service.StartService()
 if RetVal = 0 then WScript.Echo "Service started"
 if RetVal = 10 then WScript.Echo "Service already running"
next

推荐阅读