使用机器人类进行Java屏幕捕获

时间:2010-12-19 00:31:39

标签: java windows-7

我使用机器人类来捕获并将文件保存在xp中的C:驱动器上。它工作正常,但当与Windows 7一起使用时,我得到异常,说访问被拒绝,使用本机方法访问文件。

是因为我使用C:驱动器而不是系统tmp目录或其他东西? 我没有Windows 7来测试它,这就是为什么要问。

代码是这样的:

Dimension screenSize;
Rectangle screenRectangle;
BufferedImage image;

for (int i=0; i<j; i++){
    img[i] = "C:\\"+(i+1)+".jpg"; //e.g 1.jpg saved in C: drive on 1st itr.
    screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    screenRectangle = new Rectangle(screenSize);
    image = robot.createScreenCapture(screenRectangle);
    ImageIO.write(image, "jpg", new File(img[i]));
}

1 个答案:

答案 0 :(得分:3)

在Windows 7中默认关闭根目录的写入权限。您可以将代码更改为

img[i] = (i+1)+".jpg";

将屏幕捕获图像写入您启动jvm的同一目录。