Java/Development Class/Robot
Версия от 18:01, 31 мая 2010; (обсуждение)
Содержание
- 1 Capture a screenshot
- 2 Capturing a Screen Shot
- 3 Capturing Screen in an image using Robot class
- 4 Create key press event using Robot class?
- 5 Create mouse event using Robot class
- 6 Get the colour of a screen pixel
- 7 Moving the Cursor on the Screen
- 8 Simulate a key press
- 9 Simulate a mouse click
- 10 Use Robot to do mouse press
Capture a screenshot
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
public class Main {
public static void main(String[] argv) throws Exception {
Robot robot = new Robot();
int x = 100;
int y = 100;
int width = 200;
int height = 200;
Rectangle area = new Rectangle(x, y, width, height);
BufferedImage bufferedImage = robot.createScreenCapture(area);
// Capture the whole screen
area = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
bufferedImage = robot.createScreenCapture(area);
}
}
Capturing a Screen Shot
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
public class Main {
public static void main(String[] argv) throws Exception {
Robot robot = new Robot();
int x = 100;
int y = 100;
int width = 200;
int height = 200;
Rectangle area = new Rectangle(x, y, width, height);
BufferedImage bufferedImage = robot.createScreenCapture(area);
area = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
bufferedImage = robot.createScreenCapture(area);
}
}
Capturing Screen in an image using Robot class
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JWindow;
public class Main {
public static void main(String[] arg) throws Exception {
Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(new Rectangle(0, 0, (int) screenDim.getWidth(),
(int) screenDim.getHeight()));
JWindow window = new JWindow(new JFrame());
window.getContentPane().setLayout(new BorderLayout());
window.getContentPane().add(BorderLayout.CENTER, new JLabel(new ImageIcon(image)));
window.pack();
window.setVisible(true);
}
}
Create key press event using Robot class?
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class Main {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
robot.delay(3000);
robot.keyPress(KeyEvent.VK_Q);
robot.keyPress(KeyEvent.VK_W);
robot.keyPress(KeyEvent.VK_E);
robot.keyPress(KeyEvent.VK_R);
robot.keyPress(KeyEvent.VK_T);
robot.keyPress(KeyEvent.VK_Y);
}
}
Create mouse event using Robot class
import java.awt.Robot;
import java.awt.event.InputEvent;
public class Main {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
robot.mouseMove(200, 200);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.mouseWheel(-100);
}
}
Get the colour of a screen pixel
import java.awt.Color;
import java.awt.Robot;
public class Main {
public static void main(String[] args) throws Exception{
Robot robot = new Robot();
Color color = robot.getPixelColor(20, 20);
System.out.println("Red = " + color.getRed());
System.out.println("Green = " + color.getGreen());
System.out.println("Blue = " + color.getBlue());
}
}
Moving the Cursor on the Screen
import java.awt.Robot;
public class Main {
public static void main(String[] argv) throws Exception {
Robot robot = new Robot();
robot.mouseMove(500, 500);
}
}
Simulate a key press
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class Main {
public static void main(String[] argv) throws Exception {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_A);
}
}
Simulate a mouse click
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
public class Main {
public static void main(String[] argv) throws Exception {
Robot robot = new Robot();
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
}
}
Use Robot to do mouse press
import java.awt.Robot;
import java.awt.event.InputEvent;
public class Main {
public static void main(String[] args) throws Exception {
Robot r = new Robot();
r.mouseMove(35, 35);
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
Thread.sleep(50);
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
}
}