是否可以使用 Java 截取辅助 Windows 10 桌面的屏幕截图?

是否可以使用 Java 截取辅助 Windows 10 桌面的屏幕截图?

如果我想截取具有多个适配器/屏幕的扩展桌面的屏幕截图,我可以使用以下代码:

static void takeScreenShot(String path) throws AWTException, IOException {

    Rectangle screenRect = new Rectangle(0, 0, 0, 0);
    for (GraphicsDevice gd : GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()) {
        screenRect = screenRect.union(gd.getDefaultConfiguration().getBounds());
    }
    BufferedImage capture = new Robot().createScreenCapture(screenRect);

    File output = new File(path);
    ImageIO.write(capture, "bmp", output);
}

但是,就我而言,我只有 1 个 VGA 适配器(板载)、1 个显示器(HDMI),并且我正在使用新的 Windows 10 虚拟桌面功能。

Windows10多桌面.png

如何使用类似的 Java 程序截取其他虚拟桌面的屏幕截图?

我尝试将宽度加倍Rectangle(1920x2),但从像素 1920 到 3840,所截取的屏幕截图上全是黑色。

黑色屏幕快照.png

static void takeScreenShot(String path) throws AWTException, IOException {

    Rectangle screenRect = new Rectangle(0, 0, 1920*2, 1080);
    BufferedImage capture = new Robot().createScreenCapture(screenRect);

    File output = new File(path);
    ImageIO.write(capture, "bmp", output);
}

相关内容