【发布时间】:2016-12-12 06:10:59
【问题描述】:
我想通过 vbscript 获取正在运行的应用程序的名称列表,并通过其主窗口标题终止应用程序。这些应用程序应列在Task Manager -> Applications tab
像这样:
从网上搜索后,我找到了类似this的vbscript:
'FUNCTION
Function ListProcessRunning()
'This function can report names from
'TaskManager -> Processes
sComputerName = "."
Set objWMIService = GetObject("winmgmts:\\" & sComputerName & "\root\cimv2")
sQuery = "SELECT * FROM Win32_Process"
Set objItems = objWMIService.ExecQuery(sQuery)
'iterate all item(s)
For Each objItem In objItems
WScript.Echo objItem.Name
Next
End Function
这个 vbscript 列出Task Manager -> Processes tag 下的所有进程名称,如下所示:
这不是我想要的。
我还发现了这个:
'FUNCTION
Function ListApplicationRunning()
'This function can report names from
'TaskManager -> Application
Set Word = CreateObject("word.application")
For Each x In Word.Tasks
WScript.Echo x.Name
Next
Word.Quit
Set Word = Nothing
End Function
这真的给了我我想要的,但问题是我要运行这个脚本的服务器没有Word,所以 vbscript 没有word.application,我无法为它安装一个。
我的问题是如何获取应用程序名称并以该名称终止应用程序?我不确定是否可以仅使用 vbscript,可能是 vbscript 和 cmd 的组合也可以。
【问题讨论】:
-
看看this是否能解决你的问题。
-
对不起,你的脚本会给我进程列表,这不是我想要的。非常感谢。
-
指示的代码允许您检索窗口的标题(任务列表输出中的最后一列或代码中的
task(8))。现在您可以在taskkill中使用PID (task(1)) 或通过WMI查询定位进程并调用进程的Terminate方法。 -
@MCND 我明白你的意思,但我的应用程序无法通过
tasklist列出。我终于用 c++ 完成了我的任务。非常感谢。
标签: vbscript