0/5 (3 avis)
Snippet vu 6 153 fois - Téléchargée 21 fois
Option Explicit 'déclaration des API pour le Device Context Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject 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 'déclaration des API pour le presse papier Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function EmptyClipboard Lib "user32" () As Long Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long Private Const CF_BITMAP = 2 Private Declare Function CloseClipboard Lib "user32" () As Long Public Function Ecran_to_PressePapier(X As Long, Y As Long, W As Long, H As Long, hwnd As Long) As Boolean On Error GoTo erreur 'initialisation pour les API de Device Context Dim DC As Long DC = GetDC(0) If (DC = 0) Then GoTo erreur Dim vDC As Long vDC = CreateCompatibleDC(DC) If (vDC = 0) Then GoTo erreur Dim BMP As Long BMP = CreateCompatibleBitmap(DC, W, H) If (BMP = 0) Then GoTo erreur Dim holdBMP As Long holdBMP = SelectObject(vDC, BMP) '---------------------------------------------- 'copier l'image depuis l'écran (DC(0) dans le bitmap Dim res As Long res = BitBlt(vDC, 0, 0, W, H, DC, X, Y, vbSrcCopy) If (res = 0) Then GoTo erreur 'l'appel de l'API a échoué 'mettre l'image dans le press papier res = OpenClipboard(hwnd) If (res = 0) Then GoTo erreur 'l'appel de l'API a échoué res = EmptyClipboard If (res = 0) Then GoTo erreur 'l'appel de l'API a échoué res = SetClipboardData(CF_BITMAP, BMP) If (res = 0) Then GoTo erreur 'l'appel de l'API a échoué res = CloseClipboard If (res = 0) Then GoTo erreur 'l'appel de l'API a échoué 'destruction propre pour les API de Device Context Call SelectObject(vDC, holdBMP) Call DeleteObject(BMP) Call DeleteDC(vDC) Call ReleaseDC(0, DC) '---------------------------------------------- Ecran_to_PressePapier = True Exit Function erreur: Ecran_to_PressePapier = False End Function
18 mai 2010 à 08:41
Ce que tu écris est vrai.
Ça peut quand même servir, et être plus rapide sans programme.
Pour tous les goûts mais à ne pas mettre à l'égout !
Bonne journée
17 mai 2010 à 21:02
je me permet cependant de reprocher à ta méthode de ne pas être "automatique"
enfin, il en faut pour tous les goûts et toutes les utilisations.
17 mai 2010 à 08:47
Il existe une autre façon de faire ne nécesitant auncune connaissance en programation.
- Imp écr
- Ouvrir paint ou autre similaire
- Clic à droite : coller
- Récupération de la partie avec le sélectionneur partiel, carré en haut
à gauche.
Ctrl C, copie autre part, dans nouveau fichier paint ou autre logiciel.
- Utiliser spécialement dans Word pour créer des liens hypertexte sur image et
Utile pour monter des fichiers xml
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.