Basic Univers
;- Voici deux codes

  repeat
  ...
  clearscreen(...)
  ...
  displaysprite(...)
  ...
  flipbuffers(...)
  
  if keyboardreleased(#PB_Key_S)
    snap + 1
    snapid = grabsprite(#pb_any, 0, 0, ..., ...)
    savesprite(snapid, "snap_" + str(snap)+".bmp")
    freesprite(snapid)
  endif
  ...
  until ...





; Auteur : Le Soldat Inconnu
; Version de PB : 3.9
;
; Explication du programme :
; Faire une copie d'écran

#CAPTUREBLT = $40000000

Procedure SetWinTransparency(WinHandle.l, Transparency_Level.l)
  If OpenLibrary(0, "user32.dll")
    CallFunction(0, "SetLayeredWindowAttributes", WinHandle, 0, Transparency_Level, 2)
    CloseLibrary(0)
  EndIf
EndProcedure

If OpenWindow(0, 0, 0, 300, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Plein écran")
  SetWindowLong_(WindowID(), #GWL_EXSTYLE, GetWindowLong_(WindowID(), #GWL_EXSTYLE) | $00080000) ; #WS_EX_LAYERED = $00080000
  SetWinTransparency(WindowID(), 180)
  ; Pour changer le niveau de transparence de la fenêtre
  ; Le niveau de transparence doit être compris entre 1 (transparence totale) et 255 (opaque)
  
  Repeat
    Event = WaitWindowEvent()
  Until Event = #WM_CLOSE
  
EndIf

Ecran_Largeur = GetSystemMetrics_(#SM_CXSCREEN)
Ecran_Hauteur = GetSystemMetrics_(#SM_CYSCREEN)

DC = GetDC_(0)
CreateImage(0, Ecran_Largeur, Ecran_Hauteur)
Dessin = StartDrawing(ImageOutput())
BitBlt_(Dessin, 0, 0, Ecran_Largeur, Ecran_Hauteur, DC, 0, 0, #SRCPAINT|#CAPTUREBLT)
StopDrawing()
ReleaseDC_(0, DC)

SaveImage(0, "Copie d'écran.bmp")

Delay(2000)




#######################

;{- Constantes
;/Constantes Window