Почему этот код робота для создания снимка экрана не работает, когда компьютер заблокирован? - PullRequest
0 голосов
/ 22 мая 2011

Я использую класс Robot, чтобы сделать снимок экрана рабочего стола:

Robot objRobot = null;
try {
    objRobot = new Robot();
} catch(Exception ex) {
}
BufferedImage objBufferedImage =  objRobot.createScreenCapture(objRectArea);  

Проблема в том, что когда мой компьютер заблокирован, изображение становится черным.То есть то, что отображается на рабочем столе, не фиксируется.Я хочу, чтобы на скриншоте отображался рабочий стол, даже если мой компьютер заблокирован.Как я могу это сделать?Я бы предпочел решение, которое по-прежнему использует робот.

1 Ответ

0 голосов
/ 16 января 2012

Попробуйте это

    public class Main {

        private Robot robot = new Robot();

        public Main() throws AWTException, IOException {
            int x = 800;
            int y = 800;
            int width = 200;
            int height = 200;
            imageCapture(x, y, width, height);
    }


        private void imageCapture(int x, int y, int width, int height) throws IOException {
            Rectangle area = new Rectangle(x, y, width, height);
            BufferedImage bufferedImage = robot.createScreenCapture(area);
            //remove next line if u do not want file.png saved
ImageIO.write(bufferedImage, "png", new File("file.png"));
        }

        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws AWTException, IOException {
            new Main();
        }/**
         * @return the robot
         */
        public Robot getRobot() {
            return robot;
        }

        /**
         * @param robot the robot to set
         */
        public void setRobot(Robot robot) {
            this.robot = robot;
        }


    }

Также создает файл file.png в проекте

...