Réaliser une copie d'écran

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Réaliser une copie d'écran

Message par Progi1984 »

Système : Windows & Linux

Code : Tout sélectionner

;@author Progi1984
ProcedureDLL Desktop_MakeScreenshot(Filename.s)
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Linux ;{
      Protected lProgram.l
      RunProgram("import", "-silent -window root "+GetFilePart(Filename), GetPathPart(Filename))
    ;}
    CompilerCase #PB_OS_Windows ;{
      Protected lImage.l
      Protected hDC.l
      lImage = CreateImage(#PB_Any, GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN))
      hDC = StartDrawing(ImageOutput(lImage))
        BitBlt_(hDC,0,0,ImageWidth(lImage),ImageHeight(lImage),GetDC_(GetDesktopWindow_()), 0, 0, #SRCCOPY)
      StopDrawing()
      ReleaseDC_(GetDesktopWindow_(), hDC) 
      SaveImage(lImage, Filename)
    ;}
  CompilerEndSelect
EndProcedure

Desktop_MakeScreenshot(GetHomeDirectory() + "file.jpg")