Faire une capture d'écran

Contenu du snippet

Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Const SRCCOPY = &HCC0020
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" ( _
  ByVal lpDriverName As String, ByVal lpDeviceName As String, _
  ByVal lpOutput As String, lpInitData As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long
Private Declare Function GetSystemMetrics Lib "user32" ( _
  ByVal nIndex As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _
  ByVal x As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
  ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, _
  ByVal dwRop As Long) As Long
' Copie de tout l'écran.
Private Sub CopyScreen(DestDC As Long, DestX As Long, DestY As Long)
  Call CopyScreenRECT(0, 0, GetSystemMetrics(SM_CXSCREEN), _
    GetSystemMetrics(SM_CYSCREEN), DestDC, DestX, DestY)
End Sub
' Copie d'une zone de l'écran.
Private Sub CopyScreenRECT(Left As Long, Top As Long, Width As Long, _
  Height As Long, DestDC As Long, DestX As Long, DestY As Long)
  Dim hDC As Long
  hDC = CreateDC("DISPLAY", vbNullString, vbNullString, 0&)
  Call BitBlt(DestDC, DestX, DestY, Width, Height, hDC, Left, Top, SRCCOPY)
  Call DeleteDC(hDC)
End Sub

Compatibilité : VB6, VBA

Disponible dans d'autres langages :

A voir également

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.