VBS如何提取指定进程的PID?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBS如何提取指定进程的PID?相关的知识,希望对你有一定的参考价值。
VBS如何提取指定进程的PID?进程不只是一个,不妨举个例子,把1.exe,2.exe,3.exe这三个进程的PID查明并用msgbox一一输出该怎么做?谢谢。
一楼的,对不起,你的代码运行后说是找不到指定文件。我对vbs懂得不多,希望直接给出可用代码,谢谢。
Set w = GetObject("winmgmts:")
Set p = w.ExecQuery("select * from win32_process where name='1.exe' or name='2.exe' or name='3.exe' ")
if p.Count = 0 then
msgbox "指定进程未运行或用户权限不足以获得其信息。"
else
For Each i In p
msgbox "进程 " & i.name & " 的 PID 是 " & i.ProcessId
Next
end if
以上代码在我机器(win7)上测过没问题的,要是在你那里出错你可贴个截屏上来我试着看看。
------
修改前的:
'使用 WMI 对象
Set w = GetObject("winmgmts:")
Set p = w.ExecQuery("select * from win32_process where name= "& Chr(34) & "chrome.exe" & Chr(34) )
For Each i In p
msgbox "进程 " & i.name & " 的 PID 是 " & i.ProcessId
'i.TerminateProcess '用于杀死该进程
Next
例子是找所有 chrome.exe 的PID,你自己改改就是1、2、3.exe了本回答被提问者采纳 参考技术B dim Const wbemFlagReturnImmediately = &h10
Dim Const wbemFlagForwardOnly = &h20
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
MsgBox "ProcessId: " & objItem.ProcessId
Next
使用wincc vbs脚本查找进程及如何运行进程
使用vbs代码查看某个进程是否在运行,本文要检查的进程名为 QRscan.exe,其代码如下:
sub CheckProcess
Dim WMI,Objs,Process,Obj
Set WMI=GetObject("WinMgmts:")
Set Objs=WMI.InstancesOf("Win32_Process")
Process=""
‘遍历所有在运行的进程
For Each Obj In Objs
‘Process=Process & Obj.Description & Chr(13) & Chr(10)
Process = Obj.Description
If Process = "QRscan.exe" Then
Msgbox "QRscan.exe在运行中..."
Exit For ‘发现所需进程时退出遍历
end if
Next
End sub
当遍历结束扔没有找到该进程时,可开启该进程,其代码如下:
dim objShell
set objShell = CreateObject(“Wscript.Shell”)
objShell.Run “E:\\QRscan.exe” ,,true ‘假如此进程路径在E盘根目录 第一个参数:进程路径,第二参数:窗口形式,第三个参数:同步/异步执行;
以上是关于VBS如何提取指定进程的PID?的主要内容,如果未能解决你的问题,请参考以下文章