Click here to Skip to main content
15,112,354 members
Articles / Programming Languages / C#
Article
Posted 29 Oct 2005

Stats

126.3K views
2.7K downloads
49 bookmarked

Internet Explorer Activity Monitor

Rate me:
Please Sign up or sign in to vote.
3.64/5 (8 votes)
29 Oct 2005CPOL
The Internet Activity Monitor captures what you are doing on Internet Explorer like opening a browser, requesting a Website and closing the browser.
Sample image

Introduction

This application is a simple but useful one. I used this application in a Windows Service which monitors the activity of the browser and the person logged-in at that time.

Adding Reference

Sample Image - IE_Activity_Monitor.jpg

Add a reference in your project to SHDocVw.dll. This is a COM component named Microsoft Internet Controls. It contains the definitions of the InternetExplorer and ShellWindows classes.

About the Code

The code can be divided into three parts:

  1. Browser Open Activity
  2. Browser Navigation Activity
  3. Browser Close Activity

Following are the event handlers that are fired at their respective events:

C#
// THIS EVENT IS FIRED WHEN A NEW BROWSER IS OPENED
        private void shellWindows_WindowRegistered(int z)
        {            
            string filnam;        
            
            foreach (SHDocVw.InternetExplorer ie in shellWindows)
            {
                filnam = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
    
                if (filnam.Equals("iexplore"))
                {
                    browser = ie;    
                        
                    bool check=true;

                    for (int i=0; i<Current_IE_Handles.Count; i++)
                    {
                        if (Current_IE_Handles[i].ToString()==browser.HWND.ToString())
                        {
                            check=false;
                        }
                    }
                        
                    if (check==true)
                    {
                        Current_IE_Handles.Add(browser.HWND.ToString());
                        this.listBox1.Items.Add("Browser Open : Handle
					( "+browser.HWND.ToString()+" )");
                        browser.BeforeNavigate2+=
			new SHDocVw.DWebBrowserEvents2_BeforeNavigate2EventHandler
			(browser_BeforeNavigate2);
                    }                        
                }
            }            
        }

When you type something like www.codeproject.com, this event is fired and here you can capture all the information about the Internet Explorer Navigation.

C#
// THIS EVENT IS FIRED WHEN THE BROWSER IS JUST ABOUT TO NAVIGATE TO A WEBSITE
        private void browser_BeforeNavigate2(object a,ref object b,
		ref object c,ref object d,ref object e,ref object f,ref bool g)
        {
            this.listBox1.Items.Add(browser.HWND.ToString()+ " : "+b.ToString());
        }
C#
// THIS EVENT IS FIRED WHEN A NEW BROWSER IS CLOSED
        private void shellWindows_WindowRevoked(int z)        
        {            
            string filnam;
            ArrayList Closed_IE=new ArrayList();
              
            foreach (SHDocVw.InternetExplorer ie in shellWindows)
            {
                filnam = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
    
                if (filnam.Equals("iexplore"))
                {
                    Closed_IE.Add(ie.HWND.ToString());
                }
            }    
        
            for (int i=0; i<this.Current_IE_Handles.Count; i++)
            {
                bool check=false;

                for (int j=0; j<Closed_IE.Count; j++)
                {
                    if (Convert.ToInt32(this.Current_IE_Handles[i])==
			Convert.ToInt32(Closed_IE[j]))
                        check=true;
                }

                if (check==false)
                {
                    this.listBox1.Items.Add("Browser Closed : Handle
			( "+this.Current_IE_Handles[i].ToString()+" )");
                    this.Current_IE_Handles.RemoveAt(i);
                    break;
                }
            }
        } 

Currently this application captures the activity of the Internet Explorer. A new and improved version will be posted shortly that can monitor the activity of user defined browsers.

Initial Work

I carried forward the work done by Steven M. Cohn. Check out his post at this link.

History

  • 29th October, 2005: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Ali Raza Shaikh
Software Developer
Pakistan Pakistan
Ali Raza Shaikh did his BS (CS) from FAST-NUCES, Karachi Campus. He is also a Microsoft Certified Application Developer. He have a great passion for programming and all the programming related stuff. He can be reached at alirazashaikh.blogspot.com

Comments and Discussions

 
GeneralHTTP monitor Pin
Globalization15-Oct-08 7:49
MemberGlobalization15-Oct-08 7:49 
GeneralException occur while code placed in a window service Pin
Rizwan Riaz28-May-08 3:47
MemberRizwan Riaz28-May-08 3:47 
GeneralRe: Exception occur while code placed in a window service Pin
Tejal Bhavsar19-Jun-08 1:00
MemberTejal Bhavsar19-Jun-08 1:00 
QuestionIE 7 Tabbing, How can you make this work with tabs?? Pin
thephatp23-Mar-08 14:52
Memberthephatp23-Mar-08 14:52 
AnswerRe: IE 7 Tabbing, How can you make this work with tabs?? Pin
Rizwan Riaz21-Jun-08 1:17
MemberRizwan Riaz21-Jun-08 1:17 
QuestionWindows Service Pin
F.Granata20-Dec-07 22:07
sussF.Granata20-Dec-07 22:07 
GeneralMonitor all application Pin
parvu20043-Nov-07 2:39
Memberparvu20043-Nov-07 2:39 
QuestionInternet Explorer 7 Pin
fredamaral22-May-07 10:26
Memberfredamaral22-May-07 10:26 
QuestionIE Protected Mode on Vista Pin
Pappu5star2-Apr-07 1:49
MemberPappu5star2-Apr-07 1:49 
GeneralComparing this with Joe Bergeron's Pin
Fresh Mexican Food Fan21-Mar-07 9:19
MemberFresh Mexican Food Fan21-Mar-07 9:19 
GeneralPopup Pin
Tadas Danielius11-Nov-06 0:54
MemberTadas Danielius11-Nov-06 0:54 
Generalother browsers.. Pin
AAndrews22-Jul-06 9:37
MemberAAndrews22-Jul-06 9:37 
Generalstops in some conditions Pin
RupeshV15-May-06 19:16
MemberRupeshV15-May-06 19:16 
GeneralCannot Run As a Windows Service Pin
dnan25-Apr-06 21:41
Memberdnan25-Apr-06 21:41 
GeneralRe: Cannot Run As a Windows Service Pin
scippyone18-May-07 8:36
Memberscippyone18-May-07 8:36 
Generalsetting the code into a dll Pin
RupeshV10-Apr-06 21:26
MemberRupeshV10-Apr-06 21:26 
Generalnice Pin
punkcpp29-Mar-06 20:17
Memberpunkcpp29-Mar-06 20:17 
GeneralRe: nice Pin
punkcpp29-Mar-06 20:19
Memberpunkcpp29-Mar-06 20:19 
Questioncan you make it better Pin
pennamaraju18-Jan-06 18:38
Memberpennamaraju18-Jan-06 18:38 
AnswerRe: can you make it better Pin
Ali Raza Shaikh28-Jan-06 23:27
MemberAli Raza Shaikh28-Jan-06 23:27 
GeneralRe: can you make it better Pin
Jack987622-Feb-10 3:52
MemberJack987622-Feb-10 3:52 
GeneralBUG whan open more windows Pin
EmailSolidale22-Nov-05 23:54
MemberEmailSolidale22-Nov-05 23:54 
GeneralRe: BUG whan open more windows Pin
Ali Raza Shaikh28-Jan-06 23:30
MemberAli Raza Shaikh28-Jan-06 23:30 
GeneralRe: BUG whan open more windows Pin
Tadas Danielius11-Nov-06 3:59
MemberTadas Danielius11-Nov-06 3:59 
GeneralRe: BUG whan open more windows Pin
scippyone6-May-07 6:22
Memberscippyone6-May-07 6:22 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.