PC Review


Reply
Thread Tools Rate Thread

Automating external instances of Internet Explorer in C#

 
 
SunshineGirl
Guest
Posts: n/a
 
      23rd Dec 2003
I'm trying to receive events from a running instance of Internet Explorer.
So far I've only been able to receive events from an instance I launch from
code, but I need to receive events from all running instances of Internet
Explorer (I mean those that the user launches himself).

I know this is possible because I did it three months ago. Unfortunately, I
can't find the code. I've already looked at all the Microsoft articles on
automating Internet Explorer, so please don't suggest those links.

Thanks in advance.


 
Reply With Quote
 
 
 
 
Tian Min Huang
Guest
Posts: n/a
 
      24th Dec 2003
Hello,

Thanks for your post. As I understand, you want to connect to a running
instance of Internet Explorer. If so, please refer to the KB article 176792.

HOWTO: Connect to a Running Instance of Internet Explorer
http://support.microsoft.com/?id=176792

Hope this helps.

Regards,

HuangTM
Microsoft Online Partner Support
MCSE/MCSD

Get Secure! -- www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

 
Reply With Quote
 
SunshineGirl
Guest
Posts: n/a
 
      24th Dec 2003
Thanks, but I've already seen this article, as all other Microsoft articles
that deal with connecting to Internet Explorer.

As in this article, I have code that cycles through ShellWindows and gets a
reference to each running instance of Internet Explorer. That's where I
connect to the IE events, but they simply don't fire.


static private SHDocVw.ShellWindows shellWindows = new
SHDocVw.ShellWindowsClass();
static private SHDocVw.DWebBrowserEvents2_BeforeNavigate2EventHandler
beforeNavigate2;
static private SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler newWindow2;

public static void Main()
{
foreach(SHDocVw.InternetExplorer ie in shellWindows)
{
MessageBox.Show("ie.Location:" + ie.LocationURL);
ie.BeforeNavigate2 += beforeNavigate2;
ie.NewWindow2 += newWindow2;
}
}

The message box displays the URL, but the events simply don't fire.



"Tian Min Huang" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hello,
>
> Thanks for your post. As I understand, you want to connect to a running
> instance of Internet Explorer. If so, please refer to the KB article

176792.
>
> HOWTO: Connect to a Running Instance of Internet Explorer
> http://support.microsoft.com/?id=176792
>
> Hope this helps.
>
> Regards,
>
> HuangTM
> Microsoft Online Partner Support
> MCSE/MCSD
>
> Get Secure! -- www.microsoft.com/security
> This posting is provided "as is" with no warranties and confers no rights.
>



 
Reply With Quote
 
Tian Min Huang
Guest
Posts: n/a
 
      25th Dec 2003
Hello,

Thanks for your response. Based on my research, I am able to receive the IE
event on my side. I now share the following information with you:

1. You will need to create a WinForm application instead of Console
application.
2. I reviewed your code, it seems that the delegates are not mapped to
methods. Please refer to the following code snippet:

//--------------code snippet----------------------
public class Form1 : System.Windows.Forms.Form
{
static private SHDocVw.ShellWindows shellWindows = new
SHDocVw.ShellWindowsClass();

public Form1()
{
InitializeComponent();

foreach(SHDocVw.InternetExplorer ie in shellWindows)
{
MessageBox.Show("ie.Location:" + ie.LocationURL);
ie.BeforeNavigate2 += new
SHDocVw.DWebBrowserEvents2_BeforeNavigate2EventHandler(this.ie_BeforeNavigat
e2);
}

public void ie_BeforeNavigate2(object pDisp , ref object url, ref
object Flags, ref object TargetFrameName, ref object PostData, ref object
Headers, ref bool Cancel)
{
MessageBox.Show("event received!");
}
//----------------end of----------------------------

Please check it on your side.

Have a nice day!

Regards,

HuangTM
Microsoft Online Partner Support
MCSE/MCSD

Get Secure! -- www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

 
Reply With Quote
 
SunshineGirl
Guest
Posts: n/a
 
      29th Dec 2003
Nope. Your code does exactly what my code does, and it doesn't fire the
event. I'm running Windows 2000 here. I'll test it tonight on Windows XP.
But this solution must work on Windows 2000 as well. Any ideas?

Andy


"Tian Min Huang" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hello,
>
> Thanks for your response. Based on my research, I am able to receive the

IE
> event on my side. I now share the following information with you:
>
> 1. You will need to create a WinForm application instead of Console
> application.
> 2. I reviewed your code, it seems that the delegates are not mapped to
> methods. Please refer to the following code snippet:
>
> //--------------code snippet----------------------
> public class Form1 : System.Windows.Forms.Form
> {
> static private SHDocVw.ShellWindows shellWindows = new
> SHDocVw.ShellWindowsClass();
>
> public Form1()
> {
> InitializeComponent();
>
> foreach(SHDocVw.InternetExplorer ie in shellWindows)
> {
> MessageBox.Show("ie.Location:" + ie.LocationURL);
> ie.BeforeNavigate2 += new
>

SHDocVw.DWebBrowserEvents2_BeforeNavigate2EventHandler(this.ie_BeforeNavigat
> e2);
> }
>
> public void ie_BeforeNavigate2(object pDisp , ref object url, ref
> object Flags, ref object TargetFrameName, ref object PostData, ref

object
> Headers, ref bool Cancel)
> {
> MessageBox.Show("event received!");
> }
> //----------------end of----------------------------
>
> Please check it on your side.
>
> Have a nice day!
>
> Regards,
>
> HuangTM
> Microsoft Online Partner Support
> MCSE/MCSD
>
> Get Secure! -- www.microsoft.com/security
> This posting is provided "as is" with no warranties and confers no rights.
>



 
Reply With Quote
 
SunshineGirl
Guest
Posts: n/a
 
      30th Dec 2003
You're right. It works, but only under XP. I'm not receiving any events
under Windows 2000.

Is there a reason?



"Tian Min Huang" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hello,
>
> Thanks for your response. Based on my research, I am able to receive the

IE
> event on my side. I now share the following information with you:
>
> 1. You will need to create a WinForm application instead of Console
> application.
> 2. I reviewed your code, it seems that the delegates are not mapped to
> methods. Please refer to the following code snippet:
>
> //--------------code snippet----------------------
> public class Form1 : System.Windows.Forms.Form
> {
> static private SHDocVw.ShellWindows shellWindows = new
> SHDocVw.ShellWindowsClass();
>
> public Form1()
> {
> InitializeComponent();
>
> foreach(SHDocVw.InternetExplorer ie in shellWindows)
> {
> MessageBox.Show("ie.Location:" + ie.LocationURL);
> ie.BeforeNavigate2 += new
>

SHDocVw.DWebBrowserEvents2_BeforeNavigate2EventHandler(this.ie_BeforeNavigat
> e2);
> }
>
> public void ie_BeforeNavigate2(object pDisp , ref object url, ref
> object Flags, ref object TargetFrameName, ref object PostData, ref

object
> Headers, ref bool Cancel)
> {
> MessageBox.Show("event received!");
> }
> //----------------end of----------------------------
>
> Please check it on your side.
>
> Have a nice day!
>
> Regards,
>
> HuangTM
> Microsoft Online Partner Support
> MCSE/MCSD
>
> Get Secure! -- www.microsoft.com/security
> This posting is provided "as is" with no warranties and confers no rights.
>



 
Reply With Quote
 
Tian Min Huang
Guest
Posts: n/a
 
      31st Dec 2003
Hi,

As stated in my previous reply, it works properly on my Windows 2000
systems. I think more information is needed before moving forward:

1. Did you install .NET Framework 1.1 on your Windows 2000?
2. Did you apply Windows 2000 Service Pack 3?
3. What's the version of IE on your Windows 2000?
4. Please try my sample attached in my previous post.

I am standing by for your response.

Regards,

HuangTM
Microsoft Online Partner Support
MCSE/MCSD

Get Secure! -- www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

 
Reply With Quote
 
SunshineGirl
Guest
Posts: n/a
 
      31st Dec 2003
Thank you for not abandoning me.

1. I have the .NET Framework 1.0.3705 and 1.1 installed (same as on my XP
system).
2. I have Windows 2000 with Service Pack 4.
3. I have Internet Explorer 6.0.2800.1106 with Service Pack 1 and Q828750.
4. I have tried your code, with the same result.

I know it shouldn't make any difference, but I should mention that on the
Windows 2000 system, I also have Visual Studio 6 installed. I had to go
through extensive tinkering as per the following article
http://msdn.microsoft.com/library/de...us/dnvid/html/
msdn_videbugging.asp
to enable debugging in Interdev.

Also, it just occurred to me that I have Visual Studio .NET Professional
2002 on the Windows 2000 system, and Visual Studio .NET Enterprise Architect
2003 on the XP system.

Thanks again.


"Tian Min Huang" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi,
>
> As stated in my previous reply, it works properly on my Windows 2000
> systems. I think more information is needed before moving forward:
>
> 1. Did you install .NET Framework 1.1 on your Windows 2000?
> 2. Did you apply Windows 2000 Service Pack 3?
> 3. What's the version of IE on your Windows 2000?
> 4. Please try my sample attached in my previous post.
>
> I am standing by for your response.
>
> Regards,
>
> HuangTM
> Microsoft Online Partner Support
> MCSE/MCSD
>
> Get Secure! -- www.microsoft.com/security
> This posting is provided "as is" with no warranties and confers no rights.
>



 
Reply With Quote
 
Tian Min Huang
Guest
Posts: n/a
 
      2nd Jan 2004
Hello,

Thanks for your reply. It's strage that I am not able to reproduce the
problem on my Windows 2000 test sytems with similar configuration (Win2K
SP4, IE6 SP1, .NET Framework 1.1). To narrow down the problem, I recommend
you build a new Windows 2000 system with .NET Framework 1.1 and check if
the problem persists on your side.

Hope this helps.

Regards,

HuangTM
Microsoft Online Partner Support
MCSE/MCSD

Get Secure! -- www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

 
Reply With Quote
 
SunshineGirl
Guest
Posts: n/a
 
      5th Jan 2004
Thanks.

I take back what I said. Your executable works on all the Windows 2000
systems I've tried it on. But when I compile your source code using VS.NET
2002 the event doesn't fire on the two computers that have VS.NET 2002
installed, but it fires on a clean Windows 2000 system with just the .NET
Framework 1.1 installed and no VS.NET.

I will try compiling the same code on XP with VS.NET 2003, then run it on
the same Windows 2000 computers to see if it has to do with VS.NET 2002, but
right now it looks like the culprit.




"Tian Min Huang" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hello,
>
> Thanks for your reply. It's strage that I am not able to reproduce the
> problem on my Windows 2000 test sytems with similar configuration (Win2K
> SP4, IE6 SP1, .NET Framework 1.1). To narrow down the problem, I recommend
> you build a new Windows 2000 system with .NET Framework 1.1 and check if
> the problem persists on your side.
>
> Hope this helps.
>
> Regards,
>
> HuangTM
> Microsoft Online Partner Support
> MCSE/MCSD
>
> Get Secure! -- www.microsoft.com/security
> This posting is provided "as is" with no warranties and confers no rights.
>



 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Automating Internet Explorer from VBA Oka Microsoft Excel Discussion 0 20th Jul 2006 04:09 AM
two instances of explorer.exe disables external HD shortcuts DK1000 Windows XP General 0 10th Jan 2006 08:12 PM
Automating Internet Explorer =?Utf-8?B?TGF1cmE=?= Microsoft Access VBA Modules 0 12th Oct 2004 01:01 AM
Automating Internet Explorer =?Utf-8?B?TGF1cmE=?= Microsoft Access VBA Modules 0 12th Oct 2004 12:59 AM
Automating Internet Explorer =?Utf-8?B?TGF1cmE=?= Microsoft Access VBA Modules 0 12th Oct 2004 12:59 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 09:37 PM.