工作2天后找到解决方案,我放弃并请求帮助。我需要有一个启动URL的vbs,比方说www.msn.nl,然后保持该脚本打开,直到用户用相同的URL关闭IE。我编写了一个与proces-id一起使用的脚本,并且对于像notepad.exe这样的可执行文件工作正常。但是此脚本不适用于Internet Explorer。当url启动时,进程会发生变化。而且有我的问题。不知怎的,我需要获得新的进程。
这是我到目前为止制作的剧本:
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
答案 0 :(得分:1)
由于Internet Explorer的多进程架构,这是一项非常重要的任务。在现代操作系统上,有多个IE进程(一个或多个框架/管理器进程和一个或多个选项卡/内容进程),并没有简单的方法来理解属于哪个进程。如果导航从一个安全区域(例如内联网)跨越到另一个安全区域(例如互联网),则导航会更复杂,因为导航在一个进程中开始并在另一个进程中结束。
让我们回来 - 为什么你需要完成这项任务?