Capture ecran (screenshot)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 325 fois - Téléchargée 16 fois

Contenu du snippet

Code simple, il permet de capturer l'image de l'écran du device

Le code utilise la fonction BitBlt (API tres connue) pour faire une capture de l'écran.

Source / Exemple :


// declaration de l'api P/Invoke 
// Ce code doit etre mis dans une class héritant de la classe Form
[DllImport("coredll.dll")]
public static extern int BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, uint dwRop);

const int SRCCOPY = 0x00CC0020;

private void Snapshot(string fileName)
{
      Graphics gx = this.CreateGraphics();
      Rectangle rect = Screen.PrimaryScreen.Bounds;
      Bitmap bmp = new Bitmap(rect.Width, rect.Height);
      // Creation d'un objet graphics compatible 
      Graphics gxComp = Graphics.FromImage(bmp);
      // Prendre la photo
      BitBlt(gxComp.GetHdc(), 0, 0, rect.Width, rect.Height, gx.GetHdc(), rect.Left, rect.Top, SRCCOPY);
      // Enregistrement dans un fichier
      bmp.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp);
      // Cleanup
      bmp.Dispose();
      gxComp.Dispose();
}

A voir également

Ajouter un commentaire Commentaire
pemorel
Messages postés
2
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
1 avril 2010

1 avril 2010 à 21:45
Je n'arrive pas à importer core.dll avec [DllImport("coredll.dll")]

il faut utiliser le code suivant :

Public Declare Function BitBlt Lib "coredll.dll" (ByVal hdc As IntPtr, ByVal nXDest As Integer, ByVal nYDest As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, ByVal dwRop As Integer) As Boolean

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.