PC Review


Reply
Thread Tools Rate Thread

excel internet explorer interaction appearance

 
 
Walter Briscoe
Guest
Posts: n/a
 
      2nd Jul 2009
I am running Excel 2003, IE7, and XP SP3

(I have learnt how to get information from IE from examples posted by
Joel <(E-Mail Removed)>.)

Excel VBA interacts with IE with IE.visible = False as the user does not
need to see that interaction.
The windows start bar sometimes shows briefly during such interaction.
More briefly, the IE window outline appears.
What mechanisms cause such transient behavior?
How can I code to achieve consistent behavior?
n.b. IE.visible = True is not acceptable!

Most of the time the interaction is automatic. When user intervention is
necessary, I use IE.visible = True to allow that intervention and an
Excel VBA MsgBox call to allow my code to wait until the user signals
the intervention is complete. I tried putting a doevents call in the
middle to see if I could get the behavior I want which is for the MsgBox
to be visible and for the focus to be on IE. (Excel is full screen and
IE is in a 500 pixel wide window.)
So far I have seen two scenarios:
1) IE has the focus and Excel flashes to show the user needs to act.
When I give Excel focus, the MsgBox appears;
2) Excel retains focus, the MsgBox appears and IE flahes for attention.

This is a fairly obvious race condition.
What can I do to avoid that race condition?

I say again, My code is:
' IE.busy is false
IE.visible = True ' Unhide IE window
doevents ' Give control to IE etc.
MsgBox "Do something with IE!" ' Let the user say IE is ready again
IE.visible = False ' Hide IE window

My understanding of Excel/IE interaction is still naive.
I would value suggestions on good (ideally free) places to read.
--
Walter Briscoe
 
Reply With Quote
 
 
 
 
r
Guest
Posts: n/a
 
      2nd Jul 2009

try ...

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test_IE()
Dim myURL As String
Dim myIE As Object
Const READYSTATE_COMPLETE As Long = 4

Set myIE = CreateObject("InternetExplorer.Application")
myURL = "http://www.google.com"

myIE.Visible = True

myIE.navigate myURL

Do While myIE.Busy Or myIE.readyState <> READYSTATE_COMPLETE
DoEvents
Sleep 500
Loop

'myIE.Quit
End Sub



Sub test_IE_2_not_visible()
Dim myURL As String
Dim myIE As Object
Const READYSTATE_COMPLETE As Long = 4

Set myIE = CreateObject("InternetExplorer.Application")
myURL = "http://www.google.com"

'myIE.Visible = True

myIE.navigate myURL

Do While myIE.Busy Or myIE.readyState <> READYSTATE_COMPLETE
DoEvents
Sleep 500
Loop

myIE.Quit
End Sub

regards
r

Il mio ultimo lavoro ...
http://excelvba.altervista.org/blog/...ternative.html


"Walter Briscoe" wrote:

> I am running Excel 2003, IE7, and XP SP3
>
> (I have learnt how to get information from IE from examples posted by
> Joel <(E-Mail Removed)>.)
>
> Excel VBA interacts with IE with IE.visible = False as the user does not
> need to see that interaction.
> The windows start bar sometimes shows briefly during such interaction.
> More briefly, the IE window outline appears.
> What mechanisms cause such transient behavior?
> How can I code to achieve consistent behavior?
> n.b. IE.visible = True is not acceptable!
>
> Most of the time the interaction is automatic. When user intervention is
> necessary, I use IE.visible = True to allow that intervention and an
> Excel VBA MsgBox call to allow my code to wait until the user signals
> the intervention is complete. I tried putting a doevents call in the
> middle to see if I could get the behavior I want which is for the MsgBox
> to be visible and for the focus to be on IE. (Excel is full screen and
> IE is in a 500 pixel wide window.)
> So far I have seen two scenarios:
> 1) IE has the focus and Excel flashes to show the user needs to act.
> When I give Excel focus, the MsgBox appears;
> 2) Excel retains focus, the MsgBox appears and IE flahes for attention.
>
> This is a fairly obvious race condition.
> What can I do to avoid that race condition?
>
> I say again, My code is:
> ' IE.busy is false
> IE.visible = True ' Unhide IE window
> doevents ' Give control to IE etc.
> MsgBox "Do something with IE!" ' Let the user say IE is ready again
> IE.visible = False ' Hide IE window
>
> My understanding of Excel/IE interaction is still naive.
> I would value suggestions on good (ideally free) places to read.
> --
> Walter Briscoe
>

 
Reply With Quote
 
 
 
 
Walter Briscoe
Guest
Posts: n/a
 
      2nd Jul 2009
In message <(E-Mail Removed)> of Thu,
2 Jul 2009 06:58:01 in microsoft.public.excel.programming, r
<(E-Mail Removed)> writes
>
>try ...
>
>Option Explicit
>Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
>
>Sub test_IE()


[snip]

>myIE.navigate myURL
>
>Do While myIE.Busy Or myIE.readyState <> READYSTATE_COMPLETE
> DoEvents
> Sleep 500
>Loop
>
>'myIE.Quit
>End Sub


[snip]

I did and still have a race condition. ;(
Sometimes the Excel Msgbox has focus and sometimes IE.

However, I am really excited to have access to Sleep().
I had failed to find anything in VBA help for sleep, delay, timer, etc.
Your showing a hook to "standard" MS library functions gives me power!

What I want is:
Excel has a MsgBox on top of a fullscreen window.
IE is visible and has focus.
I am prepared to accept that I can't get what I want.
It would probably need threads of control in Excel and, even if that was
possible, the reward would not justify the effort.

[snip]

>
>regards
>r
>
>Il mio ultimo lavoro ...
>http://excelvba.altervista.org/blog/...VBA/UsedRange-
>eccezioni-e-alternative.html


I did look at in in Babelfish, but did NOT understand your intention.
I DID see you use vbscript.regexp. I am familiar with UNIX regular
expressions and find them very helpful. It was a revelation to me that
such functionality is easily found from VBA.

[snip]

Scuzzi, no parliamo Italiano!
Molto grazie!
--
Walter Briscoe
 
Reply With Quote
 
r
Guest
Posts: n/a
 
      2nd Jul 2009

you could use a UserForm modaless ...
it is easy to build one similar to a msgbox

try ...

Sub test_IE()
Dim myURL As String
Dim myie As Object
Const READYSTATE_COMPLETE As Long = 4

Set myie = CreateObject("InternetExplorer.Application")
myURL = "http://www.google.com"


myie.Navigate myURL

Do While myie.Busy Or myie.readyState <> READYSTATE_COMPLETE
DoEvents
Sleep 500
Loop

UserForm1.Show 0
myie.Visible = True

'myIE.Quit
End Sub

--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm

Il mio ultimo lavoro ...
http://excelvba.altervista.org/blog/...ternative.html


"Walter Briscoe" wrote:

> In message <(E-Mail Removed)> of Thu,
> 2 Jul 2009 06:58:01 in microsoft.public.excel.programming, r
> <(E-Mail Removed)> writes
> >
> >try ...
> >
> >Option Explicit
> >Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
> >
> >Sub test_IE()

>
> [snip]
>
> >myIE.navigate myURL
> >
> >Do While myIE.Busy Or myIE.readyState <> READYSTATE_COMPLETE
> > DoEvents
> > Sleep 500
> >Loop
> >
> >'myIE.Quit
> >End Sub

>
> [snip]
>
> I did and still have a race condition. ;(
> Sometimes the Excel Msgbox has focus and sometimes IE.
>
> However, I am really excited to have access to Sleep().
> I had failed to find anything in VBA help for sleep, delay, timer, etc.
> Your showing a hook to "standard" MS library functions gives me power!
>
> What I want is:
> Excel has a MsgBox on top of a fullscreen window.
> IE is visible and has focus.
> I am prepared to accept that I can't get what I want.
> It would probably need threads of control in Excel and, even if that was
> possible, the reward would not justify the effort.
>
> [snip]
>
> >
> >regards
> >r
> >
> >Il mio ultimo lavoro ...
> >http://excelvba.altervista.org/blog/...VBA/UsedRange-
> >eccezioni-e-alternative.html

>
> I did look at in in Babelfish, but did NOT understand your intention.
> I DID see you use vbscript.regexp. I am familiar with UNIX regular
> expressions and find them very helpful. It was a revelation to me that
> such functionality is easily found from VBA.
>
> [snip]
>
> Scuzzi, no parliamo Italiano!
> Molto grazie!
> --
> Walter Briscoe
>

 
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
wmf appearance or non-appearance in Outline view =?Utf-8?B?eHBwdXNlcg==?= Microsoft Word Document Management 1 24th Apr 2006 05:23 PM
Interaction with Internet Explorer Ron Microsoft Excel Programming 8 5th Feb 2005 08:27 PM
[Reports] Internet Explorer arbitrary command execution (user interaction required) a Windows XP General 1 26th Sep 2004 07:06 PM
windows appearance changes automatically to another appearance =?Utf-8?B?YW5kaQ==?= Windows XP Help 0 23rd Sep 2004 11:15 PM
Interaction with msn explorer Carlos Windows XP Messenger 0 23rd Mar 2004 07:12 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 12:59 PM.