我需要检测 Print Spooler 服务是否正在运行。我可以找到适用于 VB.NET 的各种资源(例如,使用 ServiceProcess.ServiceController
来实际操作服务),但找不到适用于 VB6 的资源。
有什么方法可以检查Print Spooler是否在VB6中运行?理想情况下开始它,但没有它我也能生存。
最佳答案
我们在 VBA/VB6/VBScript 和命令提示符中使用 wmi。
这列出了进程
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")
For Each objItem in colItems
msgbox objitem.name & " PID=" & objItem.ProcessID & " SessionID=" & objitem.sessionid
' objitem.terminate
Next
这是键入的命令提示符。
wmic process get
您会看到您可以使用 wmic 帮助获取 VBS 方法/属性
wmic/? wmic进程/? wmic进程获取/?
所以 wmic 服务获取标题、状态
所以
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_Service")
For Each objItem in colItems
msgbox objitem.name & " " & objitem.status
Next
关于vba - 检查后台打印程序状态(运行与否),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31875007/