Have you ever wanted to get a list of the URLs you are currently browsing in Internet Explorer? Probably not, but occasionally I've got a large number of IE windows open and I realise I need to close them all, but I would like to know the pages I'm in the middle of browsing.
The PowerShell and VBScripts below do just that - enumerate the current iexplore.exe windows, and report the URL and name of any identified iexplore.exe windows.
This is also good for gathering references, if you've got many pages open and you'd like to record the URLs for later reference, I find this script easier than repeated copy/paste.
# PowerShell
$shell = new-object –com Shell.Application
$windows = $shell.Windows()
write-output ($windows.count.ToString() + " windows found")
foreach ($window in $windows) {
if ($window.FullName -like "*iexplore*") {
write-output ($window.LocationURL + ", " + $window.LocationName)
}
}
$shell = $null
' VBScript
' Find the URLs of the currently running Internext Explorer Windows
' References:
' http://windowssdk.msdn.microsoft.com/en-us/library/ms630310.aspx
' http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp
Const IE_EXE = "iexplore.exe"
Call FindCurrentURLs(strURLSet)
WScript.Echo strURLSet
wscript.quit(0)
Function FindCurrentURLs(ByRef strURLSet)
Dim objShell, objWindowSet, objWindow
Dim strwindowName, strURL, strFullName
Set objShell = CreateObject("Shell.Application") ' Create a Windows shell automation object
Set objWindowSet = objShell.Windows ' Get the collection of open windows belonging to the shell
Wscript.Echo "Processing " & objWindowSet.Count & " windows" ' Report how many instances were found
For Each objWindow in objWindowSet ' For each InternetExplorer object in the ShellWindows set
strFullName = objWindow.FullName ' Get the full path and executable of this window
If InStr(1, strFullName, IE_EXE, 1) <> 0 Then ' Is this an IE shell object?
strURL = objWindow.LocationURL ' Get the URL
If strURL <> "" Then
strURLSet = strURLSet & vbCRLF & strURL ' Append to the set of URLs
End If
Else ' No, probably explorer.exe skip
WScript.Echo "Skipped " & strFullName & " - not IE"
End If
Next
If Len(strURLSet) >= Len(vbCRLF) Then strURLSet = Right(strURLSet, Len(strURLSet) - Len(vbCRLF)) ' Strip the leading vbCRLF
Set objShell = Nothing
Set objWindowSet = Nothing : Set objWindow = Nothing
End Function
Wayne's World of IT (WWoIT), Copyright 2008 Wayne Martin.
2 comments:
Wow i never though that this could be done using vbscript !!!
i have used your script with vbs2exe www.vbs2exe.com to pack into an exe.
Thanks !
I have been looking all over the place for this. I have tried near 100 approaches and got close. You finally sir have helped me close the final gaps of my script. Now if only there was a way to do this for Firefox too.
Post a Comment