Question sur un code

Résolu
LonelusDelete Messages postés 16 Date d'inscription dimanche 10 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005 - 14 juil. 2005 à 22:45
LonelusDelete Messages postés 16 Date d'inscription dimanche 10 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005 - 15 juil. 2005 à 21:11
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

Utilisateur anonyme
14 juil. 2005 à 22:54
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
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
15 juil. 2005 à 00:18
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
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
15 juil. 2005 à 00:00
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
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 42
15 juil. 2005 à 00:37
Oui mais tu viens de faire perdre à l'utilisateur ses données précieuses qu'il venait de mettre dans le presse-papier : )
0

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

Posez votre question
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
15 juil. 2005 à 00:48
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++
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
15 juil. 2005 à 00:51
Pour un GetDC() réussi, il faut le DeleteDC() correspondant.

ciao...
BruNews, MVP VC++
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
15 juil. 2005 à 01:03
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
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 25
15 juil. 2005 à 01:26
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". )
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 25
15 juil. 2005 à 01:29
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
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 42
15 juil. 2005 à 01:40
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..
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 42
15 juil. 2005 à 01:50
En VB je ne sais pas mais en C/C++ je crois bien que c'est ReleaseDC qu'il faut après un GetDC.
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
15 juil. 2005 à 09:32
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
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
15 juil. 2005 à 11:13
OUPS, c'est bien sur ReleaseDC().
On mettra ça sur le compte de la chaleur, hein....

ciao...
BruNews, MVP VC++
0
LonelusDelete Messages postés 16 Date d'inscription dimanche 10 juillet 2005 Statut Membre Dernière intervention 29 juillet 2005
15 juil. 2005 à 21:11
Merci beaucoup !!! desoler si j'ai pas su tout de suite vous répondre tout de suite

Lio
0