Windows VBScript通过进程名或程序可执行文件名获取进程id

Windows VBScript通过进程名或程序可执行文件名获取进程id,windows,vbscript,process,executable,pid,Windows,Vbscript,Process,Executable,Pid,对于我刚从VBScript开始的任何程序,我都需要完全按照问题中的要求执行 我正在从VBscript启动系统属性程序,如下所示: Set WshShell = CreateObject("WScript.Shell") WshShell.Run "SystemPropertiesAdvanced.exe" WScript.Sleep 1000 现在我想获取SystemPropertiesAdvanced.exe程序的进程id,我该怎么做 我想做这件事完全由VBScript没有混合编码尽可能多

对于我刚从VBScript开始的任何程序,我都需要完全按照问题中的要求执行

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

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "SystemPropertiesAdvanced.exe"
WScript.Sleep 1000
现在我想获取
SystemPropertiesAdvanced.exe
程序的进程id,我该怎么做

我想做这件事完全由VBScript没有混合编码尽可能多

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,然后终止它。

这是如何使用
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启动进程并获取进程ID

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

(第一个谷歌结果)[请先用我打开的程序检查答案,它不工作,可能与计算器一起工作,它是一个很小的程序,我想要系统属性的进程id您的答案绝对正确,谢谢,但我有一个主要问题,我们可以在聊天中讨论吗?我想激活
SystemPropertiesAdvanced.exe
proc按id设置ess,然后我想按代码本身的ENTER键,但这不起作用,您能提供帮助吗?也许您应该使用
Set WshEnv=WshShell.Environment(“进程”)
WshEnv(“TestVar”)=“Windows脚本主机”
来更改当前进程。如果要使注册表永久化,请编辑注册表。