Can't activate Java icon. Please help.
Moderators: Dorian (MJT support), JRL
Can't activate Java icon. Please help.
G'day,
I am using Version 6 on XP with IE6.
I need to print information which is displayed by Internet Explorer on a normal html page. Printing the page in this raw format uses many more printed pages and the end result is quite messy and difficult for people needing to process the request. The IE6 page has a Java (printer shaped) icon on it which is usually activated manually by left clicking with the mouse. This loads the printable version of the information and this provides a far better format for printing and manual actioning.
When I hover over the icon, IE displays the following at the bottom of the window: Shortcut to javascript:ShowPrintPage(). The tag which shows next to the mouse pointer when hovering reads: Printer friendly version.
I tried using the code, below to locate the icon and activate it so it loads the printable page:
Let>ShowPrintPage()=PrintIcon
SetFocus>Myname Web Form*
Send>PrintIcon
//I also tried LClick for the next action to emulate the mouse.
Press ENTER
I could have sworn this worked with the Press ENTER option on my laptop over the weekend but now I am
doubting my sanity because I simply cannot replicate this on the desktop PC.
Can anybody help, please? I am still very much a raw beginner with using this application so please be very exact when explaining where I am going wrong, and whether I can actually get a result using this code. (I've gone back to emulating a mouse click on the icon for the moment simply to get the code running.)
I really appreciate any assistance you can give.
TIA.
J.
I am using Version 6 on XP with IE6.
I need to print information which is displayed by Internet Explorer on a normal html page. Printing the page in this raw format uses many more printed pages and the end result is quite messy and difficult for people needing to process the request. The IE6 page has a Java (printer shaped) icon on it which is usually activated manually by left clicking with the mouse. This loads the printable version of the information and this provides a far better format for printing and manual actioning.
When I hover over the icon, IE displays the following at the bottom of the window: Shortcut to javascript:ShowPrintPage(). The tag which shows next to the mouse pointer when hovering reads: Printer friendly version.
I tried using the code, below to locate the icon and activate it so it loads the printable page:
Let>ShowPrintPage()=PrintIcon
SetFocus>Myname Web Form*
Send>PrintIcon
//I also tried LClick for the next action to emulate the mouse.
Press ENTER
I could have sworn this worked with the Press ENTER option on my laptop over the weekend but now I am
doubting my sanity because I simply cannot replicate this on the desktop PC.
Can anybody help, please? I am still very much a raw beginner with using this application so please be very exact when explaining where I am going wrong, and whether I can actually get a result using this code. (I've gone back to emulating a mouse click on the icon for the moment simply to get the code running.)
I really appreciate any assistance you can give.
TIA.
J.
- Marcus Tettmar
- Site Admin
- Posts: 7395
- Joined: Thu Sep 19, 2002 3:00 pm
- Location: Dorset, UK
- Contact:
You *Might* be able to get it to work by typing this into the address bar of IE:
Javascript:ShowPrintPage()
Try it manually, if it works you're in luck and you can make the macro do this. If not, forget it, you need to click on the icon.
Using mouse coordinates to click on the icon is, of course, unreliable as the page and icon can move. The only reliable way to do it would be to use the Image Recognition Library. You'd also need the latest version of Macro Scheduler.
http://www.mjtnet.com/imagerecognition.htm
Javascript:ShowPrintPage()
Try it manually, if it works you're in luck and you can make the macro do this. If not, forget it, you need to click on the icon.
Using mouse coordinates to click on the icon is, of course, unreliable as the page and icon can move. The only reliable way to do it would be to use the Image Recognition Library. You'd also need the latest version of Macro Scheduler.
http://www.mjtnet.com/imagerecognition.htm
Marcus Tettmar
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
Hello Marcus,
Thank you for the tip. Typing Javascript:ShowPrintPage() into the address bar works and brings up the printable page. (At least I may not be going totally insane ... I was sure I was getting a result on the laptop yesterday and thought I had the code the same when I entered it onto the desktop).
I am really new at this. Could I please ask for assistance with how to use this information with code as it seems whatever I tried yesterday isn't working now?
BTW ... I would love a later version. Still working on the boss ...
TIA.
J.
Thank you for the tip. Typing Javascript:ShowPrintPage() into the address bar works and brings up the printable page. (At least I may not be going totally insane ... I was sure I was getting a result on the laptop yesterday and thought I had the code the same when I entered it onto the desktop).
I am really new at this. Could I please ask for assistance with how to use this information with code as it seems whatever I tried yesterday isn't working now?
BTW ... I would love a later version. Still working on the boss ...
TIA.
J.
- Marcus Tettmar
- Site Admin
- Posts: 7395
- Joined: Thu Sep 19, 2002 3:00 pm
- Location: Dorset, UK
- Contact:
Hi,
Just send that text to the address bar. Alt-d accesses the address bar quickly, so:
Press ALT
Send>d
Release ALT
Send>Javascript:ShowPrintPage()
Press Enter
Keep working on the boss because automating IE is a thousand times simpler with WebRecorder! With WebRecorder you could just have recorded that.
Just send that text to the address bar. Alt-d accesses the address bar quickly, so:
Press ALT
Send>d
Release ALT
Send>Javascript:ShowPrintPage()
Press Enter
Keep working on the boss because automating IE is a thousand times simpler with WebRecorder! With WebRecorder you could just have recorded that.
Marcus Tettmar
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
Hi,
I am now working with V8.
My problem is with the delay which sometimes occurs when a web page loads. My code activates a hyperlink. IE6 opens a new window to follow the link and often shows "Done" in the status bar although the screen remains blank. I have used WaitWindowOpen to allow the IE window the time required to open and load. If it hasn't within the timeout period, an additional wait period has been applied. This is okay except in the situation where IE says it's finished but the screen remains stubbornly blank for a very extended period of time. So my code then merrily accesses the address bar and tells the Java print icon to activate. Result = doesn't happen because the Java icon hasn't appeared (or anyting else for that matter) on the web page.
I don't have WebRecorder at this stage (and I'm unlikely to get approval to buy it in the near future). Is there another function I could use? I thought about FindWindowWithText but the window which contains the hyperlink the code originally activated needs to remain open for other functions and contains a great deal of text the same as the Web page so may be unreliable as a workaround. Worst case, I suppose, is closing the first window, using FindWindowWithText and reopening the first window at a later point for further action. This would greatly slow down the whole process and severely test my very basic skills with code writing.
Any suggestions would be greatly appreciated.
TIA.
J.
I am now working with V8.
My problem is with the delay which sometimes occurs when a web page loads. My code activates a hyperlink. IE6 opens a new window to follow the link and often shows "Done" in the status bar although the screen remains blank. I have used WaitWindowOpen to allow the IE window the time required to open and load. If it hasn't within the timeout period, an additional wait period has been applied. This is okay except in the situation where IE says it's finished but the screen remains stubbornly blank for a very extended period of time. So my code then merrily accesses the address bar and tells the Java print icon to activate. Result = doesn't happen because the Java icon hasn't appeared (or anyting else for that matter) on the web page.
I don't have WebRecorder at this stage (and I'm unlikely to get approval to buy it in the near future). Is there another function I could use? I thought about FindWindowWithText but the window which contains the hyperlink the code originally activated needs to remain open for other functions and contains a great deal of text the same as the Web page so may be unreliable as a workaround. Worst case, I suppose, is closing the first window, using FindWindowWithText and reopening the first window at a later point for further action. This would greatly slow down the whole process and severely test my very basic skills with code writing.
Any suggestions would be greatly appreciated.
TIA.
J.
-
- Automation Wizard
- Posts: 1101
- Joined: Fri Jan 07, 2005 5:55 pm
- Location: Somewhere else on the planet
How are you opening IE? The best (support recommended) way to handle opening pages is:
VBSTART
Dim IE
Sub CreateIE
Set IE = CreateObject("InternetExplorer.Application")
IE.visible = 1
End Sub
Sub Navigate(URL)
IE.navigate URL
End Sub
Sub WaitBusy
do while IE.Busy
loop
End Sub
Sub DestroyIE
IE.Quit
Set IE = Nothing
End Sub
VBEND
VBRun>CreateIE
VBRun>Navigate,http://www.whatever.com
VBRun>WaitBusy
.
.
.
do stuff
.
.
//then close IE
VBRun>DestroyIE
VBSTART
Dim IE
Sub CreateIE
Set IE = CreateObject("InternetExplorer.Application")
IE.visible = 1
End Sub
Sub Navigate(URL)
IE.navigate URL
End Sub
Sub WaitBusy
do while IE.Busy
loop
End Sub
Sub DestroyIE
IE.Quit
Set IE = Nothing
End Sub
VBEND
VBRun>CreateIE
VBRun>Navigate,http://www.whatever.com
VBRun>WaitBusy
.
.
.
do stuff
.
.
//then close IE
VBRun>DestroyIE
Hello Me-again,
Thank you for the suggestion. I had a go with the code you supplied and changed the URL to reflect a known internet site but when IE started it tried to go to a site I didn't recognise. Trust me when I say this VBScript code is way out of my league at the moment as I have never used VBScript. In fact, I've not long been using Macro Scheduler script (I am using the "Beginners" forum for a VERY good reason!! )
IE opens in the script I have developed as a direct result of activating a hyperlink contained in the body of an email message. Every hyperlink is different as these point to web forms submitted by different users and contained on a server. The hyperlinks can also be positioned in different places in the message body as other factors determine the length of the entire message.
Right now, I am using very basic (but effective) code as follows:
SetFocus>Approved Application*
//Locates hyperlink using the "Find" window
Press F4
Send>http
PushButton>Find,&Find Next
//Removes highlighting from Find result to allow hyperlink to activate
Press RIGHT
//Activates hyperlink
Press ENTER
It is at this point that the IE window opens but then may have a lengthy delay with the data appearing on the page even though IE says it is "Done".
I'll try hunting around this forum and the Internet in general to get some clues on how to understand VBScript. I'll also try to get some info on learning this script as I think I'll be needing it.
Kind regards,
J
Thank you for the suggestion. I had a go with the code you supplied and changed the URL to reflect a known internet site but when IE started it tried to go to a site I didn't recognise. Trust me when I say this VBScript code is way out of my league at the moment as I have never used VBScript. In fact, I've not long been using Macro Scheduler script (I am using the "Beginners" forum for a VERY good reason!! )
IE opens in the script I have developed as a direct result of activating a hyperlink contained in the body of an email message. Every hyperlink is different as these point to web forms submitted by different users and contained on a server. The hyperlinks can also be positioned in different places in the message body as other factors determine the length of the entire message.
Right now, I am using very basic (but effective) code as follows:
SetFocus>Approved Application*
//Locates hyperlink using the "Find" window
Press F4
Send>http
PushButton>Find,&Find Next
//Removes highlighting from Find result to allow hyperlink to activate
Press RIGHT
//Activates hyperlink
Press ENTER
It is at this point that the IE window opens but then may have a lengthy delay with the data appearing on the page even though IE says it is "Done".
I'll try hunting around this forum and the Internet in general to get some clues on how to understand VBScript. I'll also try to get some info on learning this script as I think I'll be needing it.
Kind regards,
J
- Marcus Tettmar
- Site Admin
- Posts: 7395
- Joined: Thu Sep 19, 2002 3:00 pm
- Location: Dorset, UK
- Contact:
Jaylee,
The **ONLY** way of reliably waiting for the page to finish loading is to use the VBScript method, which controls IE via it's own interface. IE provides you a property called Busy. This is beautifully convenient - yes, IE actually GIVES you a property called Busy and when it has stopped loading the page it sets it to false. Wow! This makes life so wonderfully simple. ALL we need to do then is navigate the page and wait for this busy flag to go false.
Two ways of doing that in Macro Scheduler: 1) use VBScript as suggested by Me_again, 2) use WebRecorder, which wraps this all up, lets you record it and makes it a bit easier.
Try this really simple example:
VBSTART
Dim IE
Sub CreateIE
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible=1
End Sub
Sub Navigate(URL)
IE.Navigate URL
End Sub
Sub WaitBusy
do while IE.Busy
loop
End Sub
Sub KillIE
IE.Quit
Set IE = nothing
End Sub
VBEND
//do this once at start
VBRun>CreateIE
//use this when you want to navigate
VBRun>Navigate,http://www.mjtnet.com
//use this to wait for the page to finish loading
VBRun>WaitBusy
MessageModal>Done!
...
P.S. - Don't be overwhelmed by the VBScript - you don't even need to modify 90% of it ... the bits before VBSTART and VBEND are given - you don't even need to try to understand it. Just paste it in and forget about it. All you need to understand are these SIMPLE bits:
//do this once at start
VBRun>CreateIE
//use this when you want to navigate
VBRun>Navigate,http://www.mjtnet.com
//use this to wait for the page to finish loading
VBRun>WaitBusy
The **ONLY** way of reliably waiting for the page to finish loading is to use the VBScript method, which controls IE via it's own interface. IE provides you a property called Busy. This is beautifully convenient - yes, IE actually GIVES you a property called Busy and when it has stopped loading the page it sets it to false. Wow! This makes life so wonderfully simple. ALL we need to do then is navigate the page and wait for this busy flag to go false.
Two ways of doing that in Macro Scheduler: 1) use VBScript as suggested by Me_again, 2) use WebRecorder, which wraps this all up, lets you record it and makes it a bit easier.
Try this really simple example:
VBSTART
Dim IE
Sub CreateIE
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible=1
End Sub
Sub Navigate(URL)
IE.Navigate URL
End Sub
Sub WaitBusy
do while IE.Busy
loop
End Sub
Sub KillIE
IE.Quit
Set IE = nothing
End Sub
VBEND
//do this once at start
VBRun>CreateIE
//use this when you want to navigate
VBRun>Navigate,http://www.mjtnet.com
//use this to wait for the page to finish loading
VBRun>WaitBusy
MessageModal>Done!
...
P.S. - Don't be overwhelmed by the VBScript - you don't even need to modify 90% of it ... the bits before VBSTART and VBEND are given - you don't even need to try to understand it. Just paste it in and forget about it. All you need to understand are these SIMPLE bits:
//do this once at start
VBRun>CreateIE
//use this when you want to navigate
VBRun>Navigate,http://www.mjtnet.com
//use this to wait for the page to finish loading
VBRun>WaitBusy
Marcus Tettmar
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
- Marcus Tettmar
- Site Admin
- Posts: 7395
- Joined: Thu Sep 19, 2002 3:00 pm
- Location: Dorset, UK
- Contact:
Just make sure you start IE by using the CreateIE code first, EVEN if you send keystrokes to it using your existing methods. Instead of running internet explorer you should use:
VBRun>CreateIE
This ensures that your script then knows about the IE object and can later use the Busy property. If you start it with Run Program or Execute File or grab an existing window the script won't know about it and you won't be able to use Busy.
VBRun>CreateIE
This ensures that your script then knows about the IE object and can later use the Busy property. If you start it with Run Program or Execute File or grab an existing window the script won't know about it and you won't be able to use Busy.
Marcus Tettmar
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
- Marcus Tettmar
- Site Admin
- Posts: 7395
- Joined: Thu Sep 19, 2002 3:00 pm
- Location: Dorset, UK
- Contact:
Nothing wrong with it - it is identical to mine, save for the URL.
Marcus Tettmar
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?