J'ai un souci pour faire des copie d'écran. Je n'arrive pas à avoir les fenêtre transparentes dessus
voici un exemple
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.9
;
; Explication du programme :
; Faire une copie d'écran
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)
StopDrawing()
ReleaseDC_(0, DC)
SaveImage(0, "Copie d'écran.bmp")
Delay(2000)
Ca enregistre la copie d'écran dans une image bmp au même endroit que le code (ou dans purebasic\compileur\ si vousn'avez pas enregistrer le code)
J'ai essayé plusieurs solution mais toujours sans succés

merci d'avance pour votre aide
