Basé sur les code de je sais plus
Code : Tout sélectionner
;/ Infos sur MSDN : http://msdn2.microsoft.com/en-us/library/ms713822(VS.85).aspx
#largeur=640
#Hauteur=480
OpenLibrary(0,"avicap32.dll")
hWndC = CallFunction(0,"capCreateCaptureWindowA", "My Capture Window",#WS_CHILD,10,10,#largeur,#Hauteur,FindWindow_(0,0),1) ; Handle du bureau
SendMessage_(hWndC, #WM_CAP_DRIVER_CONNECT,0,0)
;/ Récupère la résolution de capture courante
Image.BITMAPINFO
SendMessage_(hWndC,#WM_CAP_GET_VIDEOFORMAT,SizeOf(BITMAPINFO),Image)
Debug Image\bmiHeader\biWidth
Debug Image\bmiHeader\biHeight
;/ Change la résolution de capture
Image\bmiHeader\biWidth=#largeur
Image\bmiHeader\biHeight=#Hauteur
SendMessage_(hWndC,#WM_CAP_SET_VIDEOFORMAT,SizeOf(BITMAPINFO),Image)
;/ Copie l'image dans le presse papier
SendMessage_(hWndC, #WM_CAP_EDIT_COPY,#Null,#Null )
;/ Stoppe la capture
SendMessage_(hWndC,#WM_CAP_STOP,0,0)
SendMessage_(hWndC,#WM_CAP_DRIVER_DISCONNECT,0,0)
DestroyWindow_(hWndC)
CloseLibrary(0)
;/ Copie l'image du presse papier dans un fichier
GetClipboardImage(0,24)
UseJPEGImageEncoder()
SaveImage(0,GetPathPart(ProgramFilename())+FormatDate("%dd-%mm-%yy %hhh%ii",Date())+".jpg",#PB_ImagePlugin_JPEG)