Question sur un code

Résolu
Signaler
Messages postés
16
Date d'inscription
dimanche 10 juillet 2005
Statut
Membre
Dernière intervention
29 juillet 2005
-
Messages postés
16
Date d'inscription
dimanche 10 juillet 2005
Statut
Membre
Dernière intervention
29 juillet 2005
-
Bonjour, est-ce que quelqun connaitrait le code pour faire une capture d'écran (par exemple en utilisant un commandButton) ? Si oui pourrait il me répondre s'il vous plait .

Lio

14 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
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 GetDC Lib "user32" (ByVal hWnd As Long) As Long



BitBlt Me.hDC, 0, 0, Screen.Width / 15, Screen.Height / 15, GetDC(0), 0, 0, vbSrcCopy





ChRb
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Re,

Erreur, j'ai oublié une ligne de code.



Option Explicit

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()

Call keybd_event(vbKeySnapshot, 0, 0&, 0&) 'envoie la code de la touche Print Screen (la capture dans le press papier)

SavePicture Clipboard.GetData(), "c:\Image.bmp"

'enregistre la capture a l'adresse c:\Image.bmp

End Sub



jpleroisse
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonsoir,



Private Sub Command1_Click()

Call keybd_event(vbKeySnapshot, 0, 0&, 0&) 'envoie la code de la touchePrint Screen (la capture d'écran dans le press papier)

SavePicture Clipboard.GetData(), "c:\Image.bmp"

'enregistre la capture a l'adresse c:\Image.bmp

End Sub



jpleroisse
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Oui mais tu viens de faire perdre à l'utilisateur ses données précieuses qu'il venait de mettre dans le presse-papier : )
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Excellente remarque, on ne prog jamais avec le presse-papiers, ça appartient à l'utilisateur et on ne doit pas y toucher.

ciao...
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Pour un GetDC() réussi, il faut le DeleteDC() correspondant.

ciao...
BruNews, MVP VC++
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonsoir,

OK BruNews, mais ceci est un exemple, il suffit d'enlever la
ligne SavePicture Clipboard.GetData(), "c:\Image.bmp" et ainsi de
conserver l'image dans le Presse Papier.



jpleroisse
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
Pi au pire, si t'as pas envie de trop te faire "chier",
tu peux toujours utiliser mon contrôle ActiveX (encore plus simple
d'utilisation qu'un bouton où qu'un timer) à cette adresse :

http://www.vbfrance.com/code.aspx?ID=28595

Bon, il est peut-être pas top mais il fonctionne et il est "documenté" !



Ceci dit, j'aimerais beaucoup de BruNews nous explique rapidement le pourquoi (GetDC >>> DeleteDC)


Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse accéptée". )
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
24
Oups, j'ai oublié de mettre le lien... désolé...


[%20http://www.vbfrance.com/code.aspx?ID=28595 http://www.vbfrance.com/code.aspx?ID=28595
]



Voilà qui est mieux quand même Ben wai, ça faisait quand même un peu flemmard



D'accord, j'arrête ma promotion pour mes 3 sources à deux balles...



Re-Enjoy
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
C'est justement le problème, l'utilisateur se demande bien ce que peux faire une image dans le presse-papier alors qu'il avait copier autre chose qui est maintenant perdu..
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
En VB je ne sais pas mais en C/C++ je crois bien que c'est ReleaseDC qu'il faut après un GetDC.
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonjour,

Je trouve vos remarques fort judicieuses Lutinore et les autres, mais je voudrais quand même savoir ce qu'en pense

LonelusDelete, car après tout c'est lui qui veux savoir comment faire
une capture d'écran en cliquant sur un bouton. Bon, maintenant qu'il le
sait, peut-être nous répondra t-'il ?



jpleroisse
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
OUPS, c'est bien sur ReleaseDC().
On mettra ça sur le compte de la chaleur, hein....

ciao...
BruNews, MVP VC++
Messages postés
16
Date d'inscription
dimanche 10 juillet 2005
Statut
Membre
Dernière intervention
29 juillet 2005

Merci beaucoup !!! desoler si j'ai pas su tout de suite vous répondre tout de suite

Lio