web-dev-qa-db-fra.com

Capturez la capture d'écran à l'aide de .NET

Duplicata possible:
Comment puis-je capturer l'écran dans un bitmap?

Je dois créer une application qui capture un instantané de l'écran actuel chaque fois qu'un bouton particulier est enfoncé.

J'ai beaucoup cherché, mais je n'ai trouvé que comment capturer la fenêtre actuelle.

Pouvez-vous m'aider à comprendre comment procéder dans .NET?

Nous pouvons le faire manuellement en appuyant sur écran d'impression et en enregistrant l'image à l'aide de Paint. Je dois faire la même chose, mais je veux le faire avec un programme.

38
Bhavik Goyal

Il est certainement possible de prendre une capture d'écran à l'aide du .NET Framework. La manière la plus simple est de créer un nouvel objet Bitmap et de le dessiner en utilisant Graphics.CopyFromScreen méthode .

Exemple de code:

using (Bitmap bmpScreenCapture = new Bitmap(Screen.PrimaryScreen.Bounds.Width, 
                                            Screen.PrimaryScreen.Bounds.Height))
using (Graphics g = Graphics.FromImage(bmpScreenCapture))
{
    g.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
                     Screen.PrimaryScreen.Bounds.Y,
                     0, 0,
                     bmpScreenCapture.Size,
                     CopyPixelOperation.SourceCopy);
}

Avertissement: Cette méthode ne fonctionne pas correctement pour les fenêtres en couches. La réponse de Hans Passant ici explique la méthode la plus compliquée requise pour les obtenir dans vos captures d'écran.

51
Cody Gray