我需要完全按照我在问题中提出的任何我刚从VBScript开始的程序。
我从VBscript启动系统属性程序,如下所示:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "SystemPropertiesAdvanced.exe"
WScript.Sleep 1000
现在我想获取SystemPropertiesAdvanced.exe
程序的进程ID,我该怎么做?
我希望尽可能不使用混合编码完全由VBScript完成。
答案 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