Capture d ecran ? pq ca marche po!!!

pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 - 23 avril 2003 à 12:35
djflo99 Messages postés 14 Date d'inscription vendredi 7 mars 2003 Statut Membre Dernière intervention 3 août 2005 - 28 févr. 2005 à 11:38
Slt j utilise se code ds mon soft pour faire une capture d'ecran est ca m envoie ds le fichier l avant derniere capture d ecran pq???

Call keybd_event(vbKeySnapshot, 1, 0, 0) 'on lance virtuellement l'appuie sur la touche Impr écran Syst
SavePicture Clipboard.GetData(0), CommonDialog1.filename

8 réponses

TRAX44 Messages postés 93 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 20 juillet 2006
23 avril 2003 à 12:47
salut,
le code à mettre c

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Command1_Click()
keybd_event vbKeySnapshot, 0, 0&, 0& 'envoie la code de la touche inpim ecran (la capture dans le press papier

SavePicture Clipboard.GetData(), "c:\ttm.bmp"
'enregistre la capture a l'adresse c:\ttm.bmp
End Sub

TRAX44 :big)
0
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
23 avril 2003 à 12:52
dsl
mais erreur 380
valeur de propriete incorect
ton code est presque le mm que le mien???
mis a part :
keybd_event vbKeySnapshot, 0, 0&, 0&
0
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
23 avril 2003 à 12:55
erreur vien de getdata() il faut mettre getdata(0) mais c le mm probleme c tj avant derniere image qui est ds le fichier???
0
TRAX44 Messages postés 93 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 20 juillet 2006
23 avril 2003 à 13:01
nan dsl in fo pas de paranthèse du tt sa marche je vien de l'essayer
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016
23 avril 2003 à 13:08
Moi je fait des captures d'écran comme ça:

il te fo une form avec
autoredraw = true
borderstile = 0
visible = false
windowstate = 2

Dim hWnd&, hdc&
hWnd& = GetDesktopWindow()
hdc& = GetDC(hWnd&)
BitBlt Form1.hdc, 0, 0, Screen.Width / 15, Screen.Height / 15, hdc&, 0, 0, SRCCOPY
SavePicture Form1.Image, app.path & "\Screen.bmp"
0
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016
23 avril 2003 à 13:15
et comme c'est pas tres clair, voici un exemple:

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
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long

Private Const SRCCOPY = &HCC0020
Private Const SRCAND = &H8800C6
Private Const SRCINVERT = &H660046

Private Sub Form_Load()

Dim hWnd&, hdc&
hWnd& = GetDesktopWindow()
hdc& = GetDC(hWnd&)
BitBlt Form1.hdc, 0, 0, Screen.Width / 15, Screen.Height / 15, hdc&, 0, 0, SRCCOPY
SavePicture Form1.Image, App.Path & "\Screen.bmp"
DoEvents
End

End Sub
0
stabe Messages postés 144 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 17 juin 2006
24 avril 2003 à 10:24
Salut,

celà vient du fait que tu sauves ton image du presse papier avant qu'il ait fini de faire la copie d'écran (donc qu'il ait fini de mettre l'image dans le presse papier).

Il faut donc attendre qu'il ait fini de faire sa copie d'écran avant de sauver l'image.

Voici le code à utiliser :

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Command1_Click()
' copie d'écran
keybd_event vbKeySnapshot, 0, 0&, 0&
'attente que l'image soit finie de copiée
DoEvents
'enregistre l'image
SavePicture Clipboard.GetData(2), "c:\ttm.bmp"

End Sub
0
djflo99 Messages postés 14 Date d'inscription vendredi 7 mars 2003 Statut Membre Dernière intervention 3 août 2005
28 févr. 2005 à 11:38
oh la la, voici le code correcte et qu'il marche chez moi !!

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)


Private Sub Command1_Click()
keybd_event vbKeySnapshot, 0, 0&, 0& 'envoie la code de la touche inpim ecran (la capture dans le press papier


SavePicture Clipboard.GetData(), ("C:\Documents and Settings\user\Bureau\ttm.bmp")
'enregistre la capture a l'adresse c:\ttm.bmp
End Sub

et le bingo !
0
Rejoignez-nous