vba - 检查后台打印程序状态(运行与否)

标签 vba vbscript vb6 spooler print-spooler-api

我需要检测 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/

相关文章:

xml - 从xml查询到excel。类似于 Google 电子表格上的 importxml

multithreading - MS Access 中的多线程,异步处理

vbscript - VBScript是否具有增量运算符

windows - 从 HTA 中启动批处理文件

c# - 如何从C#查询VB6 IDE的模式

vba - 通过VBA查找Excel中不一致的公式

excel - 如何使用 VBA Vlookup 填充单元格

vbscript - 如何使vbscript弹出消息始终在最上面?

vb6 - 如何处理 VB6 .vbp 文件引用更改

c# - 替换过时的 VisualBasic.Compatibility.VB6.Support