Bonjour,

Je souhaite prendre une capture d'écran lorsqu'un prog directx est lancé en plein écran (en l’occurrence un jeu).

1)J'ai d'abord essayé le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 Robot robot = new Robot();
 GraphicsConfiguration config           = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
final BufferedImage screenshot = robot.createScreenCapture(config.getBounds());
ImageIO.write(screenshot,"png", file1);
Ceci fonctionne parfaitement lorsqu'il n'y a aucun programme lancé en plein écran. Lorsque je lance l'application en plein écran, les images sont complètement noires.

2)J'ai ensuite tenté de simuler la touche impr écran, elle est malheureusement désactivée lorsque cette application est lancée en plein écran. Même chose, elle fonctionnait bien sans le programme en plein écran.

3)Enfin, j'ai essayé d'utiliser de presser une touche, qui permet, depuis le jeu, de prendre une capture d'écran (ceci étant géré par le jeu).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
try {
            Robot bot = new Robot();
            bot.keyPress(KeyEvent.VK_F7);
            bot.delay(100);
            bot.keyRelease(KeyEvent.VK_F7);
            System.out.println("F7 PRESSED!");
        } catch (AWTException ex) {
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
        }
Ceci ne fonctionne pas non plus lorsque le jeu est en plein écran. Mais si j'appuie "manuellement" sur F7, alors une capture d'écran est bien prise par le jeu.

________________
Je ne sais plus quoi faire. J'ai lu quelque part qu'il existait une bibliothèque permettant de prendre des captures d'écran avec des programmes directx lancés (javacv?) mais je n'ai trouvé aucun code à ce sujet.
Je sais qu'il est aussi possible de faire ce que je recherche à faire en C#.

Si quelqu'un pouvait me donner un coup de pouce, ne serait-ce qu'un bout de code, une piste pour pouvoir accomplir ceci en java, je lui en serait grandement reconnaissant.