VBScript按进程名称或程序可执行文件名称获取进程ID

时间:2017-12-05 01:13:09

标签: windows vbscript process executable pid

我需要完全按照我在问题中提出的任何我刚从VBScript开始的程序。

我从VBscript启动系统属性程序,如下所示:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "SystemPropertiesAdvanced.exe"
WScript.Sleep 1000

现在我想获取SystemPropertiesAdvanced.exe程序的进程ID,我该怎么做?

我希望尽可能不使用混合编码完全由VBScript完成。

2 个答案:

答案 0 :(得分:1)

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process where name='Calculator.exe'")
'msgbox colitems
For Each objItem in colItems
    msgbox objItem.name & " " & objItem.ProcessID & " " & objItem.CommandLine
    If objItem.name = "Calculator.exe" then objItem.terminate
Next

这使用WMI查询Calculator.exe,然后终止它。

答案 1 :(得分:0)

这是如何使用 WshShell 对象启动进程并获取processID的方法:

Dim sh : Set sh = CreateObject("WScript.Shell")
Set Rtn = sh.Exec("SystemPropertiesAdvanced.exe")     'write the full path of application 
WScript.Sleep 1000                                 'stop script 1 sec waiting run the App
MsgBox "my App PID  :   "  & Rtn.ProcessID                            'Process ID for App

或使用 WMI 启动进程并获取processID

set process = GetObject("winmgmts:Win32_Process")
process.Create "SystemPropertiesAdvanced.exe",null,null,processid
MsgBox "my App PID  :   "  & Processid