Internet explorer 需要从使用的url捕获进程ID

Internet explorer 需要从使用的url捕获进程ID,internet-explorer,vbscript,Internet Explorer,Vbscript,在工作了两天找到解决方案后,我放弃了,并请求您的帮助。我需要一个vbs来启动一个url,比如www.msn.nl,然后保持该脚本打开,直到用户使用相同的url关闭IE。我编写了一个脚本,它可以与procesid一起工作,并且可以很好地用于notepad.exe之类的可执行文件。但此脚本不适用于Internet Explorer。当url启动时,进程id将更改。这就是我的问题。不知何故,我需要得到那个新的过程id 这是我到目前为止制作的脚本: strComputer = "." Set objWM

在工作了两天找到解决方案后,我放弃了,并请求您的帮助。我需要一个vbs来启动一个url,比如www.msn.nl,然后保持该脚本打开,直到用户使用相同的url关闭IE。我编写了一个脚本,它可以与procesid一起工作,并且可以很好地用于notepad.exe之类的可执行文件。但此脚本不适用于Internet Explorer。当url启动时,进程id将更改。这就是我的问题。不知何故,我需要得到那个新的过程id

这是我到目前为止制作的脚本:

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
errReturn = objProcess.Create("c:\Program Files (x86)\Internet Explorer\iexplore.exe  www.msn.com", null, objConfig, PID)
'errReturn = objProcess.Create("notepad.exe", null, objConfig, PID)

' Verify Process Availability

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

ProcessItem = "Select * from Win32_Process Where ProcessID = " & PID
WScript.Echo PID

Do
Set colProcesses = objWMIService.ExecQuery (ProcessItem)

Set WshShell = WScript.CreateObject("WScript.Shell") 

If Not colProcesses.Count = 0 Then
    WScript.Sleep 1500
    'WScript.Echo "running"
Else
    WScript.Echo "quit"
    WScript.Quit
End If
Loop

由于Internet Explorer的多进程体系结构,这是一项非常重要的任务。在现代操作系统上,有多个IE进程(一个或多个框架/管理器进程和一个或多个选项卡/内容进程),没有简单的方法来理解哪个进程属于哪个进程。如果导航从一个安全区域(如Intranet)跨越到另一个安全区域(如Internet),则情况会更加复杂,因为导航在一个过程中开始,在另一个过程中结束


让我们后退一步——你为什么需要完成这项任务?

请后退一步,描述你试图解决的实际问题,而不是你认为的解决方案。为什么要捕捉这个特定的PID?