2016-12-12 58 views
1

我想通過vbscript獲取正在運行的應用程序的名稱列表,並通過其主窗口標題來終止應用程序。這些應用程序應該在Task Manager -> Applications tab

像這樣列出:
enter image description here
從網上搜索後,我發現的VBScript喜歡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下像這個:
enter image description here
這不是我想要的。

我也發現了這一點:

'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所以沒有word.application對於VBScript服務器,我不能夠爲它安裝一個。

我的問題是如何獲取應用程序名稱並通過該名稱殺死應用程序?我不確定是否可以只用vbscript做,可能是vbscriptcmd的組合也行。

+1

看看[這](http://stackoverflow.com/a/20398390/2861476)解決您的問題。 –

+0

對不起,你的腳本會給我一個進程列表,這不是我想要的。非常感謝你。 – sflee

+1

指定的代碼允許您檢索窗口的標題(任務列表輸出中的最後一列或代碼中的「任務(8)」)。現在,您可以在'taskkill'中使用PID('task(1)')或通過'WMI'查詢定位進程並調用進程的Terminate'方法。 –

回答

1

在VBScript中,我們可以做這樣的事情只是給一個嘗試吧:

Option Explicit 
Call KillProcessbyName("common-api.jar") 
'********************************************************************************* 
Sub KillProcessbyName(FileName) 
    On Error Resume Next 
    Dim WshShell,strComputer,objWMIService,colProcesses,objProcess 
    Set WshShell = CreateObject("Wscript.Shell") 
    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
    Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process") 
    For Each objProcess in colProcesses 
     If InStr(objProcess.CommandLine,FileName) > 0 Then 
      If Err <> 0 Then 
       MsgBox Err.Description,VbCritical,Err.Description 
      Else 
       objProcess.Terminate(0) 
      End if 
     End If 
    Next 
End Sub 
'********************************************************************************** 
+0

謝謝我已經嘗試過這個腳本,但是這個腳本給了我不想要的進程列表。 – sflee

相關問題