Method | Description |
---|---|
createScreenCapture(Rectangle r) | This method returns the image (BufferedImage object) of the captured screen. The dimension of the image is specified by the rectangle r argument. |
delay(int mills) | The delay method will delay the robot before an event occurs. |
getPixelColor(int x,int y) | The getPixelColor returns the color at the specified coordinate (x,y) on the screen. |
keyPress(int key) | This method tells the robot to press a key specified by the key argument. The KeyEvent class defines key constants that can be used in this method. |
mouseMove(int x,int y) | The mouseMove method will move the mouse pointer to the coordinate (x,y) on the screen. |
mousePress(int buttons) | This method tells the robot to press the mouse button. The value of buttons argument can be found in the InputEvent class. |
In the example code below, the robot is commanded to move to the start button on the Task Bar of Window 7 and the mouse is clicked there. Then the word notepad are typed in the search box and the Enter key is pressed to open the NotePad application.
public class RobotDemo {
public static void main(String[] args){
try {
Robot r=new Robot();
//move to the start button on the Task Bar
r.mouseMove(20, (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight());
r.mousePress(InputEvent.BUTTON1_MASK); //press the left button
//type notepad in the search box
r.keyPress(KeyEvent.VK_N);
r.keyPress(KeyEvent.VK_O);
r.keyPress(KeyEvent.VK_T);
r.keyPress(KeyEvent.VK_E);
r.keyPress(KeyEvent.VK_P);
r.keyPress(KeyEvent.VK_A);
r.keyPress(KeyEvent.VK_D);
//delay the key pressed
r.delay(1000);
//press enter key
r.keyPress(KeyEvent.VK_ENTER);
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Another example is an easy screen capture program. To capture any part of the screen, you will drag the transparent capturing rectangle to a location on the screen where you want to capture. Then press the Enter key to capture the screen. In default, the captured area is 400 pixels wide (width) and 300 pixels long (height). If you wan to increase the dimension of the area to be captured, you will press the ] symbol key. Similarly, to decrease the dimension, simply press the [ symbol key. To minimize the transparent capturing rectangle, press the minus (-) key. When your work completes, you can press the ESC key to exit the program.
The images of the captured screen are saved in the current working directory of the program.
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JLabel;
class InUI extends JFrame{
int wWin;
int hWin;
int xWin;
int yWin;
InUI(){
wWin=400;
hWin=300;
setSize(wWin,hWin);
Point loc=MouseInfo.getPointerInfo().getLocation();
xWin=loc.x;
yWin=loc.y;
setLocation(xWin,yWin);
addKeyListener(new KeyDetector());
addMouseMotionListener(new MouseMove());
setUndecorated(true);
setOpacity(0.7f);
Container cont=getContentPane();
cont.setLayout(new BorderLayout());
JLabel lbl=new JLabel("<html>Click and drag this capture area.<br>Press Enter to capture the screen.</html>");
lbl.setHorizontalAlignment(JLabel.CENTER);
cont.add(lbl, BorderLayout.CENTER);
setVisible(true);
}
class KeyDetector extends KeyAdapter{
public void keyPressed(KeyEvent e){
System.out.println(e.getKeyCode());
int code=e.getKeyCode();
if(code==27) //exit the program when the Esc key is pressed.
System.exit(0);
else if(code==45) //minimize the capture
minimize();
else if(code==91) //decrease capture area
decreaseSize();
else if(code==93) //increase capture area
increaseSize();
else if(code==10){ //capture the screen when Enter key is pressed
minimize();
capture();
}
//else if((code==KeyEvent.VK_X) && (e.getModifiers() & KeyEvent.ALT_MASK)!=0 )
//System.exit(0);
}
}
class MouseMove extends MouseMotionAdapter{
public void mouseDragged(MouseEvent e){
//change location of the capture area when mouse is dragged
setWinLocation(e.getXOnScreen(),e.getYOnScreen());
}
}
public void increaseSize(){
Dimension ds=Toolkit.getDefaultToolkit().getScreenSize();
if(wWin<ds.getWidth()){
wWin+=5;
this.setSize(wWin,hWin);
}
if(hWin<ds.getHeight()){
hWin+=5;
this.setSize(wWin,hWin);
}
}
public void decreaseSize(){
if(wWin>5){
wWin-=5;
this.setSize(wWin,hWin);
}
if(hWin>5){
hWin-=5;
this.setSize(wWin,hWin);
}
}
public void setWinLocation(int x,int y){
xWin=x-wWin/2;
yWin=y-wWin/2;
this.setLocation(new Point(xWin,yWin));
}
public void minimize(){
this.setExtendedState(JFrame.ICONIFIED);
}
public void capture(){
try {
Robot rb=new Robot();
//capture the target part of the screen
BufferedImage bi=rb.createScreenCapture(new Rectangle(xWin,yWin,wWin,hWin));
//save the image
ImageIO.write(bi, "png", new File(System.getProperty("user.dir")+File.separator+"image"+System.currentTimeMillis()+".png"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class RobotDemo {
public static void main(String[] args){
new InUI();
}
}
i use fuu
ReplyDeleteaa
ReplyDeleteGreat post! I didn’t knowral of these resources and I’m going to go check them out now!
ReplyDeleteThanks for making this guide and you have given such a clear breakdown of technology updates. I've seen so many articles, but definitely, this has been the best I?ve read!
ReplyDeleteSoftware testing training in chennai
Salesforce Training in Chennai
Big Data Training in Chennai
Hadoop Training in Chennai
Android Training in Chennai
Selenium Training in Chennai
Digital Marketing Training in Chennai
JAVA Training in Chennai
Best JAVA Training institute in Chennai
Your site has a lot of useful information for myself. I visit regularly. Hope to have more quality items.
ReplyDeleteWow thanks for sharing
ReplyDeletebest salesforce training in chennai
Needed to send you that very small remark to say thanks a lot again on the beautiful methods you've documented on this website. It is so shockingly open-handed of you to make unhampered all a number of us would have made available for an e book to help make some bucks for their own end, most importantly seeing that you might well have done it if you wanted. The suggestions additionally served as the easy way to understand that many people have similar passion just like my own to figure out more concerning this problem. I'm certain there are lots of more pleasurable moments up front for many who read carefully your blog. SEO
ReplyDeleteI loved as much as you will receive carried out right here. The sketch is attractive, your authored material stylish. nonetheless, you command get bought an nervousness over that you want be delivering the following. unwell unquestionably come further formerly again as exactly the same nearly a lot often inside case you shield this increase. Air Charter Service
ReplyDeleteI'm curious to find out what blog platform you happen to be utilizing? I'm experiencing some minor security issues with my latest website and I would like to find something more risk-free. Do you have any solutions?
ReplyDeletekitchen vinyl flooring singapore
I’ve been exploring for a little bit for any high-quality articles or blog posts in this sort of house . Exploring in Yahoo I eventually stumbled upon this website. Studying this info So i am satisfied to exhibit that I have a very just right uncanny feeling I came upon just what I needed. I such a lot indubitably will make sure to don’t omit this web site and give it a glance regularly.
ReplyDeletecommercial renovation
My partner and I stumbled over here by a different page and thought I might check things out. I like what I see so now i am following you. Look forward to exploring your web page yet again.
ReplyDeleteoffice chairs Singapore
I wish to point out my gratitude for your generosity giving support to persons that really need guidance on this particular area. Your special dedication to getting the message all through turned out to be definitely beneficial and has all the time allowed many people much like me to realize their desired goals. Your personal invaluable tips and hints denotes much to me and extremely more to my office colleagues. Regards; from each one of us. advertising agency singapore
ReplyDeleteIts like you read my mind! You appear to know so much about this, like you wrote the book in it or something. I think that you could do with a few pics to drive the message home a bit, but other than that, this is wonderful blog. A fantastic read. I'll certainly be back.
ReplyDeleteprint services singapore
Hello.This article was extremely fascinating, particularly since I was investigating for thoughts on this subject last Tuesday.
ReplyDeletetravel insurance singapore
Hello there! Do you know if they make any plugins to help with SEO? I'm trying to get my blog to rank for some targeted keywords but I'm not seeing very good gains. If you know of any please share. Many thanks!
ReplyDeletehire a professional marketing agency
Thanks for sharing an informative blog keep rocking bring more details.I like the helpful info you provide in your articles. I’ll bookmark your weblog and check again here regularly. I am quite sure I will learn much new stuff right here! Good luck for the next!
ReplyDeletemobile app development training
mobile application development training online
web designing course with placement in chennai
web designing training institute in chennai
web design and development training
Web Designing Course Training Institute in Chennai
mobile app development course
mobile application development course
learn mobile application development
Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She put the shell to her ear and screamed. There was a hermit crab inside and it pinched her ear. She never wants to go back! LoL I know this is completely off topic but I had to tell someone!
ReplyDeleteRead reviews about the website designer
I read your article. It is too much appreciable. A very nice information is shared.thanks for your information really good and very nice web design company in velachery
ReplyDeletewhoah this blog is fantastic i love reading your articles. Keep up the great work! You know, a lot of people are searching around for this information, you could aid them greatly.
ReplyDeletemarketing company singapore
Ogen Infosystem is one of the best Website Designing and PPC Company in Delhi, India. Here you will well experience web designers and developers to provide a great website for your business. Our PPC Experts generate leads to your business products at an affordable price.
ReplyDeleteWebsite Designing Company in Delhi
Do you mind on the off chance that I quote a couple of your posts as long as I give credit and sources back to your weblog? My blog webpage is in precisely the same territory of interest as yours and my guests would truly profit by a portion of the data you give here. If it's not too much trouble let me know whether this alright with you. Much obliged to you!
ReplyDeletemetal supplier singapore
SEO for Dental Clinics
ReplyDeleteSEO for Pharma Companies
SEO for Healthcare
SEO Company in Chennai
Digital Marketing Training in Chennai
SEO Consultant Chennai
Web Designing in Chennai
Mua vé máy bay tại Aivivu, tham khảo
ReplyDeletevé máy bay đi Mỹ hạng thương gia
vé máy bay giá rẻ vinh sài gòn
vé máy bay hồ chí minh hà nội
lịch bay hà nội đà lạt
từ mỹ về việt nam được chưa
taxi đi sân bay giá rẻ
combo đi quy nhơn 3 ngày 2 đêm
Thanks For Sharing Your article It is very useful us and amazing blog for the users who want to learn
ReplyDeleteJoker Slot
Slot Pulsa Telkomsel
Slot Naga777
Asia777
Very Informative blog thank you for sharing. Keep sharing.
ReplyDeleteBest software training institute in Chennai. Make your career development the best by learning software courses.
android classes in chennai
blue prism training in chennai
Docker Training in Chennai
This comment has been removed by the author.
ReplyDeleteThank you for sharing information about Java. Keep it up. You can use a monitor with a higher refresh rate to maximize the capabilities of your GPU. There is no purpose in having a potent GPU that can deliver plenty of frames per second without high refresh rates. Typical refresh rates for monitors are 60 Hz, but 144 Hz or greater refresh rates are suggested for gaming. Using any Refresh rate checker tool you can check your monitor refresh rate.
ReplyDeleteAxure RP Pro Full Version With Crack user is style to the develop, answer, or the experience. Edit the custom groups, pages, & design. User easily Axure RP 8 Full Crack
ReplyDelete