Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

AppActivate an Internet Explorer window

5,398 views
Skip to first unread message

mef...@gmail.com

unread,
Jun 20, 2008, 11:59:07 PM6/20/08
to
I'm having some trouble accomplishing two tasks with a modified
version of Tom Lavedas' script.
Specifically, what I am trying to accomplish is:
1) Detect if any Internet Explorer windows are already open and that
have a title of "Google - Windows Internet Explorer"
2) If there is, bring to the foreground (and with the focus) the first
one found
3) If there are not, open up Internet Explorer and navigate to a
specific web page (and with the focus)

Tom Lavedas' script pretty much does the searching and title
comparing, and that seems to work fine.
My only issues is that I can't bring to foreground the windows (the
one that I'm opening, and the one that already is open).

Can anyone help me figure out what's wrong with my AppActivate ?

Here is what I got so far:


'-----------------< SNIP >-------------------------

echo MatchWindows


Function MatchWindows()
Dim oShell, aHTMLTitles(), sTitle, wndw, bMatch, nCnt
Dim IE
sHTMLTitles = "Google - Windows Internet Explorer"
nCnt = 0
set oShell = createobject("shell.application")

for each wndw in oShell.windows
if instr(lcase(typename(wndw.document)), "htmldocument") > 0 then
sTitle = wndw.document.title
bMatch = false
for each entry in aHTMLTitles
if entry = sTitle then
sMatches = sMatches & vbNewline & vbTab & sTitle
bMatch = true
exit for
end if
next

if not bMatch then
Redim Preserve aHTMLTitles(nCnt)
aHTMLTitles(nCnt) = sTitle
nCnt = nCnt + 1
end if
end if
next

if sMatches <> "" then
oShell.AppActivate sHTMLTitles
else
set IE = CreateObject("InternetExplorer.Application")
IE.visible = true
IE.FullScreen = false
IE.Navigate "http://www.google.com"
SYS_objShell.AppActivate sHTMLTitles
end if
end function


'-----------------< /SNIP >-------------------------

Tom Lavedas

unread,
Jun 21, 2008, 12:09:30 PM6/21/08
to
On Jun 20, 11:59 pm, mefi...@gmail.com wrote:
> I'm having some trouble accomplishing two tasks with a modified
> version of Tom Lavedas' script.
> Specifically, what I am trying to accomplish is:
> 1) Detect if any Internet Explorer windows are already open and that
> have a title of "Google - Windows Internet Explorer"
> 2) If there is, bring to the foreground (and with the focus) the first
> one found
> 3) If there are not, open up Internet Explorer and navigate to a
> specific web page (and with the focus)
>
> Tom Lavedas' script pretty much does the searching and title
> comparing, and that seems to work fine.
> My only issues is that I can't bring to foreground the windows (the
> one that I'm opening, and the one that already is open).
>
> Can anyone help me figure out what's wrong with my AppActivate ?
>
> Here is what I got so far:
>
> '-----------------< SNIP >-------------------------
>
{snip code}

I find it hard to believe that the posted code did much, since there
are a number of syntax problems in it.

For what you say you want to do, this is more likely to work ...

---------------------8<----------------------
wsh.echo MatchWindows

Function MatchWindows()
Dim oShell, oWSHShell, sTitle, wndw, bMatch, IE
sHTMLTitle = "Google"


set oShell = createobject("shell.application")

set oWSHShell = createobject("Wscript.shell")

bMatch = false
for each wndw in oShell.windows
if instr(lcase(typename(wndw.document)), "htmldocument") > 0 then
sTitle = wndw.document.title

if Instr(sTitle, sHTMLTitle)<> 0 then


bMatch = true
exit for
end if

end if
next

if bMatch then

oWSHShell.AppActivate sHTMLTitle
oWSHShell.sendkeys "%{enter}" ' Restore if minimized

else
set oIE = CreateObject("InternetExplorer.Application")
oIE.visible = true
oIE.FullScreen = false
oIE.Navigate "http://www.google.com"

do until oIE.ReadyState = 4 : wsh.sleep 100 : loop
oWSHShell.AppActivate sHTMLTitle

end if
Matchwindows = "Done, " & cStr(bMatch)
end function
---------------------8<----------------------

Of course, you will want to remove the WSH.ECHO part to keep the focus
on the Google window. I just put that in as a demonstration.

Tom Lavedas
===========

anandkumar

unread,
Mar 26, 2010, 5:55:30 AM3/26/10
to
Hi,
Really appreciate if you offer me a permanent or Alter net solution for my problem. I have screwed up with "send key" issue past couple of days.

I am trying to convert a html file(which contains images) to mht file to make single archive file through below given script.

But below script works if i directly run the script.
The same script If i run through windows scheduler it won't work. Only it executes the file name it wont pass send key to executed file.


+++++++++My Script+++++++++++++++++++++++
Dim Dir
Dir = "c:\Report"

set oShell = createobject("shell.application")

set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run("c:\Report\Module.html")

WshShell.AppActivate("c:\Report\Module.html - Microsoft Internet Explorer")

WshShell.SendKeys "%f"
WScript.Sleep 500
WshShell.SendKeys "a"
WScript.Sleep 500
WshShell.SendKeys "c:\Report\Module.mht"
WScript.Sleep 500
WshShell.SendKeys "{TAB}"
WScript.Sleep 500
WshShell.SendKeys "w"
WScript.Sleep 500
WshShell.Sendkeys "{Enter}"
WScript.Sleep 500
WshShell.SendKeys "y"
WScript.Sleep 500
WshShell.SendKeys "%{F4}"

Highly appreciate if you offer me best automation solution through vb script.

Tom Lavedas wrote:

Re: AppActivate an Internet Explorer window
23-Jun-08

On Jun 20, 11:59=A0pm, mefi...@gmail.com wrote:
{snip code}

I find it hard to believe that the posted code did much, since there
are a number of syntax problems in it.

For what you say you want to do, this is more likely to work ...

---------------------8<----------------------
wsh.echo MatchWindows

Function MatchWindows()
Dim oShell, oWSHShell, sTitle, wndw, bMatch, IE

sHTMLTitle =3D "Google"
set oShell =3D createobject("shell.application")
set oWSHShell =3D createobject("Wscript.shell")

bMatch =3D false


for each wndw in oShell.windows
if instr(lcase(typename(wndw.document)), "htmldocument") > 0 then

sTitle =3D wndw.document.title


if Instr(sTitle, sHTMLTitle)<> 0 then

bMatch =3D true


exit for
end if
end if
next

if bMatch then

oWSHShell.AppActivate sHTMLTitle
oWSHShell.sendkeys "%{enter}" ' Restore if minimized

else
set oIE =3D CreateObject("InternetExplorer.Application")
oIE.visible =3D true
oIE.FullScreen =3D false
oIE.Navigate "http://www.google.com"

do until oIE.ReadyState =3D 4 : wsh.sleep 100 : loop
oWSHShell.AppActivate sHTMLTitle

end if
Matchwindows =3D "Done, " & cStr(bMatch)
end function
---------------------8<----------------------

Of course, you will want to remove the WSH.ECHO part to keep the focus
on the Google window. I just put that in as a demonstration.

Tom Lavedas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Previous Posts In This Thread:

On Saturday, June 21, 2008 10:20 AM
mefirs wrote:

AppActivate an Internet Explorer window


I'm having some trouble accomplishing two tasks with a modified
version of Tom Lavedas' script.
Specifically, what I am trying to accomplish is:
1) Detect if any Internet Explorer windows are already open and that
have a title of "Google - Windows Internet Explorer"
2) If there is, bring to the foreground (and with the focus) the first
one found
3) If there are not, open up Internet Explorer and navigate to a
specific web page (and with the focus)

Tom Lavedas' script pretty much does the searching and title
comparing, and that seems to work fine.
My only issues is that I can't bring to foreground the windows (the
one that I'm opening, and the one that already is open).

Can anyone help me figure out what's wrong with my AppActivate ?

Here is what I got so far:


'-----------------< SNIP >-------------------------

echo MatchWindows


Function MatchWindows()


Dim oShell, aHTMLTitles(), sTitle, wndw, bMatch, nCnt
Dim IE

sHTMLTitles = "Google - Windows Internet Explorer"
nCnt = 0


set oShell = createobject("shell.application")

for each wndw in oShell.windows


if instr(lcase(typename(wndw.document)), "htmldocument") > 0 then
sTitle = wndw.document.title
bMatch = false

for each entry in aHTMLTitles
if entry = sTitle then
sMatches = sMatches & vbNewline & vbTab & sTitle

bMatch = true
exit for
end if

next

if not bMatch then
Redim Preserve aHTMLTitles(nCnt)
aHTMLTitles(nCnt) = sTitle
nCnt = nCnt + 1

end if
end if
next

if sMatches <> "" then


oShell.AppActivate sHTMLTitles
else
set IE = CreateObject("InternetExplorer.Application")
IE.visible = true
IE.FullScreen = false
IE.Navigate "http://www.google.com"
SYS_objShell.AppActivate sHTMLTitles
end if
end function


'-----------------< /SNIP >-------------------------

On Monday, June 23, 2008 6:38 AM
Tom Lavedas wrote:

Re: AppActivate an Internet Explorer window


On Jun 20, 11:59=A0pm, mefi...@gmail.com wrote:
{snip code}

I find it hard to believe that the posted code did much, since there
are a number of syntax problems in it.

For what you say you want to do, this is more likely to work ...

---------------------8<----------------------
wsh.echo MatchWindows

Function MatchWindows()
Dim oShell, oWSHShell, sTitle, wndw, bMatch, IE

sHTMLTitle =3D "Google"
set oShell =3D createobject("shell.application")
set oWSHShell =3D createobject("Wscript.shell")

bMatch =3D false


for each wndw in oShell.windows
if instr(lcase(typename(wndw.document)), "htmldocument") > 0 then

sTitle =3D wndw.document.title


if Instr(sTitle, sHTMLTitle)<> 0 then

bMatch =3D true


exit for
end if
end if
next

if bMatch then

oWSHShell.AppActivate sHTMLTitle
oWSHShell.sendkeys "%{enter}" ' Restore if minimized

else
set oIE =3D CreateObject("InternetExplorer.Application")
oIE.visible =3D true
oIE.FullScreen =3D false
oIE.Navigate "http://www.google.com"

do until oIE.ReadyState =3D 4 : wsh.sleep 100 : loop
oWSHShell.AppActivate sHTMLTitle

end if
Matchwindows =3D "Done, " & cStr(bMatch)
end function
---------------------8<----------------------

Of course, you will want to remove the WSH.ECHO part to keep the focus
on the Google window. I just put that in as a demonstration.

Tom Lavedas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D


Submitted via EggHeadCafe - Software Developer Portal of Choice
BizTalk Custom Pipeline for Splitting Messages
http://www.eggheadcafe.com/tutorials/aspnet/a0786aaf-c159-40ff-9cf6-241d5e325f42/biztalk-custom-pipeline-f.aspx

anandkumar

unread,
Mar 26, 2010, 5:55:32 AM3/26/10
to
Hi,
Really appreciate if you offer me a permanent or Alter net solution for my problem. I have screwed up with "send key" issue past couple of days.

I am trying to convert a html file(which contains images) to mht file to make single archive file through below given script.

But below script works if i directly run the script.
The same script If i run through windows scheduler it won't work. Only it executes the file name it wont pass send key to executed file.


+++++++++My Script+++++++++++++++++++++++
Dim Dir
Dir = "c:\Report"

set oShell = createobject("shell.application")


set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run("c:\Report\Module.html")

WshShell.AppActivate("c:\Report\Module.html - Microsoft Internet Explorer")

WshShell.SendKeys "%f"
WScript.Sleep 500
WshShell.SendKeys "a"
WScript.Sleep 500
WshShell.SendKeys "c:\Report\Module.mht"
WScript.Sleep 500
WshShell.SendKeys "{TAB}"
WScript.Sleep 500
WshShell.SendKeys "w"
WScript.Sleep 500
WshShell.Sendkeys "{Enter}"
WScript.Sleep 500
WshShell.SendKeys "y"
WScript.Sleep 500
WshShell.SendKeys "%{F4}"

Highly appreciate if you offer me best automation solution through vb script.

Tom Lavedas wrote:

Re: AppActivate an Internet Explorer window
23-Jun-08

On Jun 20, 11:59=A0pm, mefi...@gmail.com wrote:

{snip code}

I find it hard to believe that the posted code did much, since there
are a number of syntax problems in it.

For what you say you want to do, this is more likely to work ...

---------------------8<----------------------
wsh.echo MatchWindows

Function MatchWindows()
Dim oShell, oWSHShell, sTitle, wndw, bMatch, IE

sHTMLTitle =3D "Google"
set oShell =3D createobject("shell.application")
set oWSHShell =3D createobject("Wscript.shell")

bMatch =3D false


for each wndw in oShell.windows
if instr(lcase(typename(wndw.document)), "htmldocument") > 0 then

sTitle =3D wndw.document.title


if Instr(sTitle, sHTMLTitle)<> 0 then

bMatch =3D true


exit for
end if
end if
next

if bMatch then

oWSHShell.AppActivate sHTMLTitle
oWSHShell.sendkeys "%{enter}" ' Restore if minimized

else


set oIE =3D CreateObject("InternetExplorer.Application")
oIE.visible =3D true

oIE.FullScreen =3D false
oIE.Navigate "http://www.google.com"

do until oIE.ReadyState =3D 4 : wsh.sleep 100 : loop
oWSHShell.AppActivate sHTMLTitle

end if
Matchwindows =3D "Done, " & cStr(bMatch)
end function
---------------------8<----------------------

Of course, you will want to remove the WSH.ECHO part to keep the focus
on the Google window. I just put that in as a demonstration.

Tom Lavedas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Previous Posts In This Thread:

On Saturday, June 21, 2008 10:20 AM
mefirs wrote:

AppActivate an Internet Explorer window

I'm having some trouble accomplishing two tasks with a modified
version of Tom Lavedas' script.
Specifically, what I am trying to accomplish is:
1) Detect if any Internet Explorer windows are already open and that
have a title of "Google - Windows Internet Explorer"
2) If there is, bring to the foreground (and with the focus) the first
one found
3) If there are not, open up Internet Explorer and navigate to a
specific web page (and with the focus)

Tom Lavedas' script pretty much does the searching and title
comparing, and that seems to work fine.
My only issues is that I can't bring to foreground the windows (the
one that I'm opening, and the one that already is open).

Can anyone help me figure out what's wrong with my AppActivate ?

Here is what I got so far:


'-----------------< SNIP >-------------------------

echo MatchWindows


Function MatchWindows()


Dim oShell, aHTMLTitles(), sTitle, wndw, bMatch, nCnt
Dim IE

sHTMLTitles = "Google - Windows Internet Explorer"
nCnt = 0


set oShell = createobject("shell.application")

for each wndw in oShell.windows


if instr(lcase(typename(wndw.document)), "htmldocument") > 0 then
sTitle = wndw.document.title
bMatch = false

for each entry in aHTMLTitles
if entry = sTitle then
sMatches = sMatches & vbNewline & vbTab & sTitle

bMatch = true
exit for
end if

next

if not bMatch then
Redim Preserve aHTMLTitles(nCnt)
aHTMLTitles(nCnt) = sTitle
nCnt = nCnt + 1

end if
end if
next

if sMatches <> "" then


oShell.AppActivate sHTMLTitles
else
set IE = CreateObject("InternetExplorer.Application")
IE.visible = true
IE.FullScreen = false
IE.Navigate "http://www.google.com"
SYS_objShell.AppActivate sHTMLTitles
end if
end function


'-----------------< /SNIP >-------------------------

On Monday, June 23, 2008 6:38 AM
Tom Lavedas wrote:

Re: AppActivate an Internet Explorer window
On Jun 20, 11:59=A0pm, mefi...@gmail.com wrote:

{snip code}

I find it hard to believe that the posted code did much, since there
are a number of syntax problems in it.

For what you say you want to do, this is more likely to work ...

---------------------8<----------------------
wsh.echo MatchWindows

Function MatchWindows()
Dim oShell, oWSHShell, sTitle, wndw, bMatch, IE

sHTMLTitle =3D "Google"
set oShell =3D createobject("shell.application")
set oWSHShell =3D createobject("Wscript.shell")

bMatch =3D false


for each wndw in oShell.windows
if instr(lcase(typename(wndw.document)), "htmldocument") > 0 then

sTitle =3D wndw.document.title


if Instr(sTitle, sHTMLTitle)<> 0 then

bMatch =3D true


exit for
end if
end if
next

if bMatch then

oWSHShell.AppActivate sHTMLTitle
oWSHShell.sendkeys "%{enter}" ' Restore if minimized

else


set oIE =3D CreateObject("InternetExplorer.Application")
oIE.visible =3D true

oIE.FullScreen =3D false
oIE.Navigate "http://www.google.com"

do until oIE.ReadyState =3D 4 : wsh.sleep 100 : loop
oWSHShell.AppActivate sHTMLTitle

end if
Matchwindows =3D "Done, " & cStr(bMatch)
end function
---------------------8<----------------------

Of course, you will want to remove the WSH.ECHO part to keep the focus
on the Google window. I just put that in as a demonstration.

Tom Lavedas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

On Friday, March 26, 2010 5:55 AM
Anand Kumar wrote:

Send Key is not working for inactive windows


Hi,
Really appreciate if you offer me a permanent or Alter net solution for my problem. I have screwed up with "send key" issue past couple of days.

I am trying to convert a html file(which contains images) to mht file to make single archive file through below given script.

But below script works if i directly run the script.
The same script If i run through windows scheduler it won't work. Only it executes the file name it wont pass send key to executed file.


+++++++++My Script+++++++++++++++++++++++
Dim Dir
Dir = "c:\Report"

set oShell = createobject("shell.application")


set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run("c:\Report\Module.html")

WshShell.AppActivate("c:\Report\Module.html - Microsoft Internet Explorer")

WshShell.SendKeys "%f"
WScript.Sleep 500
WshShell.SendKeys "a"
WScript.Sleep 500
WshShell.SendKeys "c:\Report\Module.mht"
WScript.Sleep 500
WshShell.SendKeys "{TAB}"
WScript.Sleep 500
WshShell.SendKeys "w"
WScript.Sleep 500
WshShell.Sendkeys "{Enter}"
WScript.Sleep 500
WshShell.SendKeys "y"
WScript.Sleep 500
WshShell.SendKeys "%{F4}"

Highly appreciate if you offer me best automation solution through vb script.

Submitted via EggHeadCafe - Software Developer Portal of Choice

DataContractSerializer Basics
http://www.eggheadcafe.com/tutorials/aspnet/ad947ce6-cd3e-4647-b69c-94d2f3b1b265/datacontractserializer-ba.aspx

0 new messages