IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[vb6]capture une partie de l'ecran dans un Picture


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327
    Points : 127
    Points
    127
    Par défaut [vb6]capture une partie de l'ecran dans un Picture
    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

  2. #2
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327
    Points : 127
    Points
    127
    Par défaut
    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
    Picture1.Picture = CopyScreenRECT(120, 120, 100, 200)

    mais ca ne function pas

  3. #3
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    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)

  4. #4
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327
    Points : 127
    Points
    127
    Par défaut
    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)

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par bailamos Voir le message
    ...
    est ce que il ya un exemple qui permet ?????????
    Picture1.Picture = CopyScreenRECT(top,left,width,heigth)
    pas comme cela de toute façons regarde ton CopyScreenRect ce n'est pas un fonction mais une procédure ...

  6. #6
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327
    Points : 127
    Points
    127
    Par défaut
    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
    voici le code mais je ne sais pas comment recuperer le resultat dans un picturbox1

    merci

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040

  8. #8
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327
    Points : 127
    Points
    127
    Par défaut
    toujour rien !!!!!!!!!!!
    vous n'avez pas un projet qui function


    merci

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par bailamos Voir le message
    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

  10. #10
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327
    Points : 127
    Points
    127
    Par défaut
    merci boucoup bbil

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Capturer une partie d'une page web (style capture d'ecran)
    Par yannml dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 18/03/2014, 12h52
  2. Réponses: 2
    Dernier message: 26/07/2006, 11h03
  3. [VB6] Colorier une partie d'une PICTUREBOX
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 16/05/2006, 13h06
  4. [VB6] Afficher une image de bonne qualité dans un form
    Par hpfx dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/05/2006, 13h23
  5. [VB6]Lire une partie d'un fichier .txt
    Par patoch76 dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 02/05/2006, 21h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo