Private Sub Copie_Ecran(ByVal Fichier As String, _
ByVal Qualité As Integer)
' Cette routine permet de recopier l'image actuelle de l'écran dans une PictureBox
' et de sauver cette image dans un fichier BMP
Dim hdc As Long, hWnd As Long
Const ScrCopy = &HCC0020
On Error Resume Next
Screen.MousePointer = vbHourglass
' Efface les éventuelles anicennes copies d'écran
If Dir(Fichier & ".bmp" ) <> "" Then _
Kill (Fichier & ".bmp" )
If Dir(Fichier & ".jpg" ) Then _
Kill (Fichier & ".jpg" )
DoEvents
' Récupère le handle de l'image du Bureau,
' la recopie bit à bit dans la forme CopieEcran
' et la sauve en BMP
Load frmCopieEcran
frmCopieEcran.WindowState = vbMaximized
hWnd = GetDesktopWindow()
hdc = GetDC(hWnd)
BitBlt frmCopieEcran.hdc, 0, 0, Screen.Width / Screen.TwipsPerPixelX, _
Screen.Height / Screen.TwipsPerPixelY, hdc, 0, 0, ScrCopy
DoEvents
SavePicture frmCopieEcran.Image, Fichier & ".bmp"
DoEvents
Unload frmCopieEcran
' Conversion de l'image au format JPG pour prendre moins de place
Dim Capture As New aDIBSection
Set Capture = New aDIBSection
Capture.CreateFromPicture LoadPicture(Fichier & ".bmp" )
Call SaveJPG(Capture, Fichier & ".jpg", Qualité)
DoEvents
Set Capture = Nothing
Screen.MousePointer = vbDefault
End Sub |