2016-08-04 80 views

回答

2

下面的例子中的VB腳本程序返回父進程的標題和編號:

GetParentProcessInfo sCaption, sProcessId 

MsgBox "Parent Process Caption '" & sCaption & "'" & vbCrLf & "Parent Process Id '" & sProcessId & "'" 

Sub GetParentProcessInfo(sCaption, sProcessId) 
    With GetObject("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" & CreateObject("WScript.Shell").Exec("rundll32 kernel32,Sleep").ProcessId & "'") 
     With GetObject("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" & .ParentProcessId & "'") 
      With GetObject("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" & .ParentProcessId & "'") 
       sCaption = .Caption 
       sProcessId = .ProcessId 
      End With 
     End With 
     .Terminate 
    End With 
End Sub 
+0

謝謝。 我是新的VB腳本。我必須寫一個殺死所有cmd.exe的vbs,除了vb腳本將要運行的那個。 下面是我正在嘗試的代碼。 –

+0

設置WshShell = WScript.CreateObject(「WScript.Shell」) 設置a = WshShell.Exec(cmd/c「wmic process get parentprocessid,name | find WMIC」) x = a.StdOut.ReadLine Wscript.Echo x PID =右(X,4) 設置colProcesses = objWMIService.ExecQuery( 「SELECT * FROM Win32_Process的其中名稱= '的cmd.exe' 和的ProcessID!= ABC」) 爲每個項目在colProcesses \t \t item.terminate( ) Next –

+1

@bharathipriyaT請不要發表評論,但通過編輯將所有這些細節添加到您的問題。描述你的代碼是如何工作的,什麼是錯的,以及期望的行爲是什麼。然後我可能會建議一些代碼。 – omegastripes