Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vbscript 如何在vbs中输出进程id/为什么不工作_Vbscript_Pid - Fatal编程技术网

Vbscript 如何在vbs中输出进程id/为什么不工作

Vbscript 如何在vbs中输出进程id/为什么不工作,vbscript,pid,Vbscript,Pid,我在vbs中是一个绝对的noob,但到目前为止,我修改了一个脚本,它扫描所有正在运行的进程,如果它们属于“应用程序”,那么它的名称将输出到csv文件 Set Word = CreateObject("Word.Application") Dim fso Set fso = WScript.CreateObject("Scripting.Filesystemobject") Set f = fso.CreateTextFile("output.csv", 2) Set Tasks = Word.T

我在vbs中是一个绝对的noob,但到目前为止,我修改了一个脚本,它扫描所有正在运行的进程,如果它们属于“应用程序”,那么它的名称将输出到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,我会一直得到以下结果:

对象不支持此属性或方法:
“对象进程ID”
代码:800A02B6

在线帮助不多,我看到的大多数示例都使用x.processID来查找processID

有人能告诉我为什么在上面的代码中它不起作用吗


谢谢。

如有疑问,请阅读文档。对象没有属性
ProcessID
。更好地用于枚举进程:

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

如有疑问,请阅读文档。对象没有属性
ProcessID
。更好地用于枚举进程:

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

此方法仅显示进程id,我需要应用程序名称及其进程id。@vulcanicrook如果您仔细查看了我链接到的文档,您可能会注意到
Win32\u进程
类还提供了一个属性
名称
。考虑把这个属性添加到我的样例代码中。对不起,我没有正确解释,我的意思是,我需要过滤并且只有进程“应用程序”或任务管理器中的应用程序选项卡中的进程。据我所知,这段代码使用任务,使用ms word作为对象,看到任何其他类似的对象都是可见的,并输出它的名称。我不确定如何使用WMITH执行此操作任务
Tasks
集合包含的内容远不止任务管理器的“应用程序”视图中显示的内容。您最好使用
Win32\u进程
。此方法仅显示进程id,我需要应用程序名称及其进程id。@vulcanicrook如果您仔细查看了我链接到的文档,您可能会注意到
Win32\u进程
类还提供了一个属性
名称
。考虑把这个属性添加到我的样例代码中。对不起,我没有正确解释,我的意思是,我需要过滤并且只有进程“应用程序”或任务管理器中的应用程序选项卡中的进程。据我所知,这段代码使用任务,使用ms word作为对象,看到任何其他类似的对象都是可见的,并输出它的名称。我不确定如何使用WMITH执行此操作任务
Tasks
集合包含的内容远不止任务管理器的“应用程序”视图中显示的内容。您最好使用
Win32\u进程