É possível fazer uma captura de tela de uma área de trabalho secundária do Windows 10 usando Java?

É possível fazer uma captura de tela de uma área de trabalho secundária do Windows 10 usando Java?

Se eu quiser fazer uma captura de tela de uma área de trabalho estendida com vários adaptadores/telas, posso usar este código:

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);
}

Mas, no meu caso, tenho apenas 1 adaptador VGA (integrado), 1 monitor (HDMI) e estou usando o novo recurso de desktops virtuais do Windows 10.

Windows10MultipleDesktops.png

Como faço uma captura de tela da outra área de trabalho virtual usando um programa Java semelhante?

Tentei dobrar a largura do Rectangle(1920x2), mas do pixel 1920 ao 3840, fica tudo preto na captura de tela tirada.

BlackScreenShot.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);
}

informação relacionada