View Single Post
Old 01-31-2008   #2 (permalink)
Wes Williams


 
 

RE: Programmatically Read All URL's in All Tabs in a Browser?

Okay everyone. Did lot's of digging to get this one and the Google references
to code are not helpful. Bookmark this one. Here's the code to do it:

using SHDocVw;
using mshtml;

....
listProcesses.Items.Clear();

ShellWindows SW = new ShellWindowsClass();
string processName;
HTMLDocumentClass htmlDoc;

foreach (InternetExplorer IE in SW)
{
processName =
System.IO.Path.GetFileNameWithoutExtension(IE.FullName).ToLower();
if (processName.Equals("iexplore"))
{
try
{
htmlDoc = (HTMLDocumentClass)IE.Document;

listProcesses.Items.Add(htmlDoc.IHTMLDocument2_nameProp + " - " +
htmlDoc.IHTMLDocument2_url);
}
// when the browser does not hold an html doc
catch (InvalidCastException ex)
{
}
}
}

--
Wes Williams


"Wes Williams" wrote:
Quote:

> How can I approach capturing all the open URL's in all tabs in my open browser?
>
> I wrote C# code to capture all of the IE processes but I cannot get into the
> browser object model from there. How do I get into the object model and get
> the URL in the address bar in all tabs?
>
> Process[] myProcesses = Process.GetProcesses();
> foreach (Process myProcess in myProcesses)
> {
> if (myProcess.ProcessName.Equals("IExplore",
> StringComparison.CurrentCultureIgnoreCase))
> Console.Write(myProcess.ProcessName);
> }
>
> --
> Thanks,
> Wes
My System SpecsSystem Spec