2017-05-20 8 views
0

私のコンピュータで実行されているすべてのプロセスを表示したいが、cmdコマンドはスクリプトや小さなファイルではなく、アプリケーションのみを提供する。私はすべてのプロセスをより高度な方法で一覧表示し、現在実行中のものすべてをリストする方法を見つけ出そうとしています。誰もがvbscriptでそれを行う方法を知っていますか?または、これを行うためのより良い方法があれば、それは何ですか?vbscriptで実行中のプロセスを表示する

+0

を参照してください。 *「スクリプトでないか小さいファイルでも」*。テキストファイルですか? – GTAVLover

答えて

2

TaskListのコマンドを使用して

TaskListコマンドは、その詳細とプロセスID(PIDが)で実行中のすべてのアプリケーションとサービスのリストを表示するために使用することができます。

Dim ProTFPath, ProTF, StrPrInfo, StrPrInfoA, PrInfo 

Set WshShell = WScript.CreateObject("Wscript.Shell") 
Set FSO = WScript.CreateObject("Scripting.FileSystemObject") 

ProTFPath = "C:\PROCESSES.txt" 

WshShell.Run "CMD /C TASKLIST /V /FO LIST > """ + ProTFPath + """", 0, True 
' Here Run is used instead Exec to avoid console window flashes. 

If FSO.FileExists(ProTFPath) Then 
    Set ProTF = FSO.OpenTextFile(ProTFPath, 1, False) 
End If 

StrPrInfoA = ProTF.ReadAll 

PrInfo = Split(StrPrInfoA, VbCrLf + VbCrLf) 

For I = 0 To UBound(PrInfo) 
    WScript.Echo PrInfo(I) 
Next 

Erase PrInfo 
ProTF.Close 

あなたはもはやスクリプトの最後に次の行を追加し、このファイルが必要な場合:

If FSO.FileExists(ProTFPath) Then 
    FSO.DeleteFile(ProTFPath, True) 
End If 

は、あなたが何を意味するのか説明してくださいより多くの情報についてTaskListhere.

+1

私はwmiを使用したでしょう。タスクリストコマンドについて知らなかった。ありがとう、私は今日新しい事を学びました。 :) – Gurman

0
EXE_Process = AllProcessRunningEXE(".") 
Vbs_Process = AllProcessRunningVBS (".") 

Function AllProcessRunningEXE(strComputerArg) 
strProcessArr = "" 
    Dim Process, strObject 
    strObject = "winmgmts://" & strComputerArg 
    For Each Process in GetObject(strObject).InstancesOf("win32_process") 
     strProcessArr = strProcessArr & ";" & vbNewLine & Process.name 
    Next 
    AllProcessRunningEXE = Mid(strProcessArr,3,Len(strProcessArr)) 
End Function 


Function AllProcessRunningVBS (strComputerArg) 
    strProcessArr = "" 
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputerArg & "\root\cimv2") 
    Set colItems = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'cscript.exe' OR Name = 'wscript.exe'") 
    For Each objItem in colItems 
     strProcessArr = strProcessArr & ";" & vbNewLine & objItem.CommandLine 
    Next 
    AllProcessRunningVBS = Mid(strProcessArr,3,Len(strProcessArr)) 

    Set objWMIService = Nothing 
    Set colItems = Nothing 
End Function 
関連する問題