salut tous le monde,
j'ai un Picture1 ou je veux metre une capture d'ecran mais pas tous l'ecran juste une partie defénie par
x(top,left,width,heigth)
comment capturer cette partie de l'ecran dans un Picture1
merci d'avance
salut tous le monde,
j'ai un Picture1 ou je veux metre une capture d'ecran mais pas tous l'ecran juste une partie defénie par
x(top,left,width,heigth)
comment capturer cette partie de l'ecran dans un Picture1
merci d'avance
Picture1.Picture = CopyScreenRECT(120, 120, 100, 200)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub CopyScreenRECT(Left As Long, Top As Long, Width As Long, _ Height As Long, DestDC As Long, DestX As Long, DestY As Long) Dim hDC As Long hDC = CreateDC("DISPLAY", vbNullString, vbNullString, 0&) Call BitBlt(DestDC, DestX, DestY, Width, Height, hDC, Left, Top, SRCCOPY) Call DeleteDC(hDC) End Sub
mais ca ne function pas
Il existe des api spécifiques pour obtenir le device context de l'ecran
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 hWndDesk = GetDesktopWindow() hDC = GetDC(hWndDesk)
merci
mais je n'est trouver aucun exemple concernant ces api
est ce que il ya un exemple qui permet ?????????
Picture1.Picture = CopyScreenRECT(top,left,width,heigth)
voici le code mais je ne sais pas comment recuperer le resultat dans un picturbox1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Private Const SM_CXSCREEN = 0 Private Const SM_CYSCREEN = 1 Private Const SRCCOPY = &HCC0020 Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" ( _ ByVal lpDriverName As String, ByVal lpDeviceName As String, _ ByVal lpOutput As String, lpInitData As Long) As Long Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long Private Declare Function GetSystemMetrics Lib "user32" ( _ ByVal nIndex As Long) As Long Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _ ByVal x As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _ ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, _ ByVal dwRop As Long) As Long ' Copie de tout l'écran. Private Sub CopyScreen(DestDC As Long, DestX As Long, DestY As Long) Call CopyScreenRECT(0, 0, GetSystemMetrics(SM_CXSCREEN), _ GetSystemMetrics(SM_CYSCREEN), DestDC, DestX, DestY) End Sub ' Copie d'une zone de l'écran. Private Sub CopyScreenRECT(Left As Long, Top As Long, Width As Long, _ Height As Long, DestDC As Long, DestX As Long, DestY As Long) Dim hDC As Long hDC = CreateDC("DISPLAY", vbNullString, vbNullString, 0&) Call BitBlt(DestDC, DestX, DestY, Width, Height, hDC, Left, Top, SRCCOPY) Call DeleteDC(hDC) End Sub
merci
toujour rien !!!!!!!!!!!
vous n'avez pas un projet qui function
merci
Le code dans la fonctionne !! suffit juste de le modifier un peu pour définir la zone à capturer ...
sur ta form tu met un bouton Command1 et un picture box Picture1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Private Declare Function BitBlt Lib "gdi32.dll" ( _ ByVal hDestDC As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal hSrcDC As Long, _ ByVal xSrc As Long, _ ByVal ySrc As Long, _ ByVal dwRop As Long) As Long Private Declare Function GetDesktopWindow Lib "user32.dll" () As Long Private Declare Function GetDC Lib "user32.dll" ( _ ByVal hwnd As Long) As Long Private Const SRCCOPY As Long = &HCC0020 Public Sub ScreenShot(Pic As PictureBox, xSrc As Long, ySrc As Long, Width As Long, Height As Long) Pic.AutoRedraw = True 'Pic.Visible = False BitBlt Pic.hDC, 0&, 0&, Width, Height, GetDC(GetDesktopWindow()), xSrc, ySrc, SRCCOPY SavePicture Pic.Image, "C:\ScreenShot.bmp" End Sub Private Sub Command1_Click() ScreenShot Picture1, 120, 120, 100, 200 End Sub
merci boucoup bbil
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager