27/04/2024
Windev et les Api Windows
Nb de visiteurs en ligne : 1
>> Introduction <<
>> Codes et Forum <<
>> Download <<
Rubrique
: 5 - Trucs et astuces
Sujet
: Faire une copie d'écran
Auteur
Message
°¨¨ JL ¨¨°
Posté le : 23/06/2000 12:00:00
// Pour faire une copie de la totalité de l'écran, il faut un champ image avec la propriété invisible à vrai, dans l'exemple suivant 'im1'.
hwnd est un entier long=handle("im1")
hdcScreen est un entier long = appeldll32("gdi32","CreateDCA" , "DISPLAY" , NULL , NULL , NULL)
// résolution de l'écran
HORZRES est un entier long=appeldll32("gdi32","GetDeviceCaps" , hdcScreen , 8)
VERTRES est un entier long=appeldll32("gdi32","GetDeviceCaps" , hdcScreen , 10)
// on donne au champ image im1 les mêmes dimensions que l'écran
im1..ligne=0
im1..colonne=0
im1..largeur=horzres
im1..hauteur=vertres
dcim1 est un entier long=ddebutdessin("im1")
appeldll32("gdi32","BitBlt", dcim1 , 0 , 0 , im1..largeur , im1..hauteur , hdcScreen , 0 , 0 , 0x00CC0020)
dsauveimage("im1","copieecr.bmp") // sauvegarde de l'image sur le disque
appeldll32("gdi32","DeleteDC",hdcScreen)
dfindessin()
//----------------------------------------------------------------------
// Pour faire une copie d'une fenêtre (ou d'un champ) , même principe que pour la totalité :
hwnd est un entier long=handle("im1") // handle du champ image
hwndfen est un entier long=handle() // handle de la fenêtre ou du champ à copier
hdcScreen est un entier long = appeldll32("user32","GetWindowDC" , hwndfen)
rect est compose de
l est un entier long
t est un entier long
r est un entier long
b est un entier long
fin
appeldll32("user32","GetWindowRect" , hwndfen , &rect)
HORZRES est un entier long = rect.r - rect.l
VERTRES est un entier long = rect.b - rect.t
im1..ligne=0
im1..colonne=0
im1..largeur=horzres
im1..hauteur=vertres
dcim1 est un entier long=ddebutdessin("im1")
appeldll32("gdi32","BitBlt" , dcim1 , 0 , 0 , im1..largeur , im1..hauteur , hdcScreen , 0 , 0 , 0x00CC0020)
dsauveimage("im1","copieecr.bmp")
appeldll32("user32","ReleaseDC",hwndfen,hdcScreen)
dfindessin()