Vbscript 如何在vbs中输出进程id/为什么不工作
我在vbs中是一个绝对的noob,但到目前为止,我修改了一个脚本,它扫描所有正在运行的进程,如果它们属于“应用程序”,那么它的名称将输出到csv文件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
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进程
。