1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| 'Déclaration copie d'écran
Private Declare Function BitBlt Lib "gdi32.dll" (ByVal hdcDest 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 System.Int32) As Boolean
Private Declare Function GetTopWindow Lib "user32" () As IntPtr
Dim Image
'Capture d'écran programmée
Private Sub Button_GENCARTE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_GENCARTE.Click
'Définition des variables qui délimitent la zone à capturer (carte)
Dim xDeb, xFin, yDeb, yFin As Integer
'Création d'un objet Graphics qui pointe sur l'écran
Dim g1 As Graphics = Graphics.FromHwnd(GetDesktopWindow)
xDeb = +277
yDeb = 15 + 9
xFin = +277 + 395
yFin = 16 + 9 + 255
'Création d'un bitmap de même taille que la zone à capturer
Image = New Bitmap(xFin - xDeb + 1, yFin - yDeb + 1, g1)
Dim g2 As Graphics = Graphics.FromImage(Image)
'Création du contexte de périphérique de la fiche
'Création du contexte de périphérique de l'image bitmap
Dim dc1 As IntPtr = g1.GetHdc
Dim dc2 As IntPtr = g2.GetHdc
'Copie de l'écran dans l'image bitmap
BitBlt(dc2, 0, 0, xFin - xDeb + 1, yFin - yDeb + 1, dc1, xDeb, yDeb, &HCC0020)
PictureBox2.Image = Image
'Libération des contextes de périphériques
g1.ReleaseHdc(dc1)
g2.ReleaseHdc(dc2) |
Partager