如何在VBS中输出处理ID /为什么这不起作用



我是vbs中的绝对菜鸟CSV文件。

Set Word = CreateObject("Word.Application")
Dim fso
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Set f = fso.CreateTextFile("output.csv", 2)
Set Tasks = Word.Tasks
For Each obj in Tasks
   PID = obj.ProcessID
   If obj.Visible Then f.Writeline obj.Name & "," & PID
Next
Word.Quit

我的目的是,获取所有应用程序的列表,并在阅读名称后决定要终止并使用其流程ID杀死它(您是从CSV文件中获得的)。

它能够正确输出名称,但是,如果我尝试输出ProcessID,我会继续得到这个:

对象不支持此属性或方法:
'obj.processid'
代码:800A02B6

在线没有太多帮助,我看到的大多数示例都使用X.Processid查找ProcessID。

有人可以告诉我为什么它在上述代码中不起作用。

谢谢。

如有疑问,请阅读文档。Task对象没有属性ProcessID。更好地使用WMI来枚举流程:

Set wmi = GetObject("winmgmts://./root/cimv2")
For Each p In wmi.ExecQuery("SELECT * FROM Win32_Process")
  WScript.Echo p.ProcessId
Next

最新更新