views:

357

answers:

5

Hi, I need to create a batch file that will stop a process and then refresh a defined tab in internet explorer 7. Just need some help/pointers on the tab refresh part or if it's even possible... I don't want IE to open another tab, and another browser is not an option as the web based program is only compatible with IE. Any ideas? I've experimented with a VBS file with no luck and seeing how it's a web based program I cannot add Java Script to the page...

A: 

You could frame the site, then refresh it from the outer frame with javascript on a timer. This may or may not suit your needs.

Stefan Kendall
Thanks for your answer, however it will not suit my needs. The refresh has to be on demand when the batch file is run at random times...
Jay
A: 

This is doable, but it's a little tricky and it requires a constraint: the tab you want to refresh has to have been opened by a Javascript call to window.open and it has to have a name. Let's call that name foo. Then you need to simply load another web page in that same browser session to execute the following Javascript:

window.open('http://other.site.url/etc', 'foo');

This means you need to both know the name of the frame and the target URL. But it's certainly doable.

Doing this from a batch file requires some scripting. In VBScript the code would be something like:

Dim browser
Set browser = CreateObject("SHDocVw.InternetExplorer")
browser.visible = True
browser.navigate("http://mysite.org/refresh.html")

Where refresh.html is the page containing the above Javascript followed by a call to window.close()

Dan
+1  A: 

I know you said you tried VBScript, but it really is the most suitable solution for what you're trying to achieve. See "Hey, Scripting Guy! Blog: How Can I Tell if Any Internet Explorer Windows Are Open to a Particular Web Site?"

See the code:

For i = 0 to objShellWindows.Count - 1
    Set objIE = objShellWindows.Item(i)
    strURL = objIE.LocationURL
    If InStr(strURL, "http://www.microsoft.com/technet/scriptcenter")Then
        blnFound = True
    End If
Next

Each iteration returns an instance of an open Internet Explorer window's WebBrowser Control. Instead of the blnFound = True try objIE.Refresh2().

Andy E
A: 

Assuming you have control over the web page too...

I'm suprised no one brought up the age old meta refresh.

Rather than do some goofy iframe/javascript magic, or some crazy IE COM object mambo, you could always write a meta refresh tag into your given a certain querystring is passed (or all the time, I don't know what your needs are)

Again, I'm not sure this suits your needs, but it is quick and pretty clean.

put this in your and it will refresh the page once every 60 seconds:

<meta http-equiv="refresh" content="60">
blesh
A: 

Thanks for all your help. I am going to try some of these suggestions and see what happens. The VBScript answer by Andy E seems like it might be the answer as of now. Basically what I am trying to do is minimize calls to IT Support for a minor issue with Acrobat. We have a program that is web based that employees access through the Intranet and every now and then Acrobat will stop working properly rendering part of the program useless. The simple fix is to walk over to the system and manually stop the process then refresh the page. But with multiple office locations, many PCs, and some inexperienced users this has become a nuisance. I would like to make a batch file on the desktop that they can run whenever the issue occurs, or if they do call they can be instructed to just click the icon.

Again, thanks for all your help, it is appreciated!

-Jay

Jay