use of java.awt.Robot in project jna by java-native-access.
the class User32Test method testRegisterHotKey.
@Test
public void testRegisterHotKey() {
int vk = KeyEvent.VK_D;
int id = 1;
assertTrue("RegisterHotKey failed", INSTANCE.RegisterHotKey(null, id, WinUser.MOD_CONTROL | WinUser.MOD_ALT, vk));
Robot robot = null;
try {
robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(vk);
Thread.sleep(50);
robot.keyRelease(vk);
WinUser.MSG msg = waitForMessage(500);
assertNotNull(msg);
assertEquals(msg.wParam.intValue(), id);
assertTrue(INSTANCE.UnregisterHotKey(null, id));
robot.keyPress(vk);
Thread.sleep(10);
robot.keyRelease(vk);
msg = waitForMessage(500);
assertNull(msg);
} catch (AWTException e) {
e.printStackTrace();
fail();
} catch (InterruptedException e) {
e.printStackTrace();
fail();
} finally {
if (robot != null) {
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_ALT);
}
}
}
use of java.awt.Robot in project screenbird by adamhub.
the class PreviewPlayerTest method generateTestImageFile.
/**
* Generates screenshot for JUnit testing
* @return
* File pointer to screen shot
*/
private File generateTestImageFile(Rectangle captureArea) {
Robot awtRobot;
String currentCaptureDir = Settings.SCREEN_CAPTURE_DIR;
if (captureArea == null) {
//Get full screen if no defined area of screen capture is defined
captureArea = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
}
try {
BufferedImage bufferedImage = generateTestImage(captureArea);
Iterator iter = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter writer = (ImageWriter) iter.next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality(1.0F);
File imageFile = new File(currentCaptureDir, "test.jpeg");
FileImageOutputStream stream = new FileImageOutputStream(imageFile);
//Set up file access
writer.setOutput(stream);
//Create image
IIOImage image = new IIOImage(bufferedImage, null, null);
//write image
writer.write(null, image, iwp);
//Close image stream
stream.close();
return imageFile;
} catch (IOException e) {
System.err.println(e);
}
return null;
}
use of java.awt.Robot in project screenbird by adamhub.
the class VideoCacheTest method generateTestImage.
/**
* Generates screenshot for JUnit testing
* @return
* File pointer to screen shot
*/
private File generateTestImage() {
Robot awtRobot;
String currentCaptureDir = Settings.SCREEN_CAPTURE_DIR;
try {
awtRobot = new Robot();
BufferedImage bufferedImage = awtRobot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
Iterator iter = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter writer = (ImageWriter) iter.next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality(1.0F);
File imageFile = new File(currentCaptureDir, "test.jpeg");
FileImageOutputStream stream = new FileImageOutputStream(imageFile);
//Set up file access
writer.setOutput(stream);
//Create image
IIOImage image = new IIOImage(bufferedImage, null, null);
//write image
writer.write(null, image, iwp);
//Close image stream
stream.close();
return imageFile;
} catch (AWTException e) {
System.err.println(e);
} catch (IOException e) {
System.err.println(e);
}
return null;
}
use of java.awt.Robot in project zaproxy by zaproxy.
the class BrowserDialog method capture.
private void capture() {
try {
// this.setAlwaysOnTop(true);
BufferedImage screencapture = new Robot().createScreenCapture(new Rectangle(this.getX(), this.getY(), this.getWidth(), this.getHeight() - this.jPanelBottom.getHeight()));
// Save as JPEG
JFileChooser chooser = new JFileChooser();
chooser.addChoosableFileFilter(new FileFilter() {
@Override
public boolean accept(File file) {
String filename = file.getName();
return filename.endsWith(".png");
}
@Override
public String getDescription() {
return "*.png";
}
});
chooser.showSaveDialog(this);
File file = chooser.getSelectedFile();
if (file != null)
ImageIO.write(screencapture, "png", file);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
// this.setAlwaysOnTop(false);
}
use of java.awt.Robot in project jdk8u_jdk by JetBrains.
the class Test6817933 method main.
public static void main(String[] args) throws Exception {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception exception) {
exception.printStackTrace();
// ignore test on non-Windows machines
return;
}
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
StyleSheet css = new StyleSheet();
css.addRule(STYLE);
HTMLEditorKit kit = new HTMLEditorKit();
kit.setStyleSheet(css);
JFrame frame = new JFrame(STYLE);
frame.add(chooser = new JFileChooser());
frame.setSize(640, 480);
frame.setVisible(true);
}
});
SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
toolkit.realSync(500);
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
try {
JToggleButton button = get(JToggleButton.class, get(WindowsPlacesBar.class, chooser));
int width = button.getWidth();
int height = button.getHeight() / 3;
Point point = new Point(0, height * 2);
SwingUtilities.convertPointToScreen(point, button);
width += point.x;
height += point.y;
int count = 0;
Robot robot = new Robot();
for (int x = point.x; x < width; x++) {
for (int y = point.y; y < height; y++) {
count += COLOR.equals(robot.getPixelColor(x, y)) ? -2 : 1;
}
}
if (count < 0) {
throw new Exception("TEST ERROR: a lot of red pixels");
}
} catch (Exception exception) {
throw new Error(exception);
} finally {
SwingUtilities.getWindowAncestor(chooser).dispose();
}
}
});
}
Aggregations