如何从directX使用java截图

如何从directX使用java截图,java,directx,screenshot,Java,Directx,Screenshot,我正在寻找一种方法,用任何运行directX游戏的Java应用程序截图。我使用以下代码 Robot robot = new Robot(); GraphicsConfiguration config = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration(); BufferedImage screenshot = robot.createScr

我正在寻找一种方法,用任何运行directX游戏的Java应用程序截图。我使用以下代码

Robot robot = new Robot();  
GraphicsConfiguration config = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();  
BufferedImage screenshot = robot.createScreenCapture(config.getBounds());  
ImageIO.write(screenshot,"png", file); 
除了在directX游戏中,这一款在任何地方都能完美运行。我对Java不太熟悉,对DirectX更不熟悉,我只是想调整一下代码。我经常在谷歌上搜索,但是所有的东西都指向我已经有的代码

你知道另一种拍摄DirectX游戏截图的方法吗


谢谢。

调用
图形设备#getFullScreenWindow
可能会工作,尽管我还没有真正测试过这段代码

    BufferedImage screenshot;
    GraphicsDevice gd = GraphicsEnvironment
            .getLocalGraphicsEnvironment()
            .getDefaultScreenDevice();
    Window window = gd.getFullScreenWindow();
    if(window == null) {
        Robot robot = new Robot();
        GraphicsConfiguration config = gd.getDefaultConfiguration();
        screenshot = robot.createScreenCapture(config.getBounds()); 
    } else {
        screenshot = new BufferedImage(window.getWidth(),
                window.getHeight(),
                BufferedImage.TYPE_INT_RGB);
        window.paint(screenshot.getGraphics());
    }
    ImageIO.write(screenshot, "png", file);

谢谢你的回答,但问题是,调用
getFullScreenWindow()
@user68293之后,
window
在某种程度上仍然是
null
,我在互联网上找不到任何解释如何用Java实现它的内容。也许可以接受的答案是另一种方法。