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

しかし、私の場合は、VGA アダプター (オンボード) が 1 つ、モニター (HDMI) が 1 つしかなく、新しい Windows 10 仮想デスクトップ機能を使用しています。

Windows10 マルチデスクトップ.png

同様の Java プログラムを使用して他の仮想デスクトップのスクリーンショットを撮るにはどうすればよいですか?

幅を2倍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);
}

関連情報