OVH Cloud OVH Cloud

Comment imprimer toute une interface avec ses composants

5 réponses
Avatar
Zeb
Bonjour à tous,

Je recherche une fonction ou autre qui me permet d'imprimé une interface
avec tout ses composants. Une fonction qui peut s'appliqué a toute
interface.

Je vous remerci d'avance pour vos réponses.

Cordialement,

5 réponses

Avatar
Armoul666
Bonjour,

J'ai trouvé ce code dans la liste des API du site Visual Basic Research
Center :

Ce code fait un imprime écran de la fenêtre active et le copie dans un
contrôle imagebox

'---------------------------------------------------------------------------
---------------------
' Exemple de Phil ()

Option Explicit

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

' bVk est le code ascii de la touche
Private Const VK_LWIN = &H5B
Private Const VK_APPS = &H5D

' Pour d'autres touches...
' a à z 65 à 90
' Home 36
' End 35
' Flêche vers le haut 38
' Flêche vers le bas 40
' Flêche vers la gauche 37
' Flêche vers la droite 39
' Echap 27
' Impr écran 44 (= vbKeySnapshot)
' Page haut 33
' Page bas 34
' Insert 45
' F1 à F12 112 à 123
' Barre d'espace 32
' Ctrl 17
' Alt 18
' Maj 16
' Verr Num 144
' Arrêt défil 145
' Tab 9
' Shift 16

' bscan (Lorsque l'on utilise la touche imprime écran)
Const TheScreen = 1 ' Copie l'écran
Const TheForm = 0 ' Copie la fenêtre active

' dwFlags (le drapeau) :
Const KEYEVENTF_EXTENDEDKEY = &H1 ' Pour actionner les touches étendues
Const KEYEVENTF_KEYUP = &H2 ' Relache la touche

' ---Cet exemple montre comment gérer Windows---
Sub GestionWindows(Index As Integer)
' ---déclarations des variables---
Dim VK_ACTION As Long
' ---Traite l'action---
Select Case Index
Case 0 ' Ouverture de l'Exploreur
VK_ACTION = &H45 ' La lettre e (ascii 69)
Case 1 ' Rechercher des fichiers
VK_ACTION = &H46 ' La lettre f (ascii 70)
Case 2 ' Réduire toutes les fenêtres
VK_ACTION = &H4D ' La lettre m (ascii 77)
Case 3 ' Ouverture du menu exécuter
VK_ACTION = &H52 ' La lettre r (ascii 82)
Case 4 ' Actionner le menu démarrer
VK_ACTION = &H5B ' Le bouton démarrer de windows sur le clavier
(ascci 91)
End Select
' ---Envoie de la séquence de touche---
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(VK_ACTION, 0, 0, 0)
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub

Private Sub Command1_Click()
' ---Copie d'écran de la forme active (pour l'écran utiliser
"TheScreen")---
keybd_event vbKeySnapshot, TheForm, 0&, 0&
' ---On laisse le temps à Windows de charger l'image en mémoire---
DoEvents
' ---Copie du presse-papier dans le contrôle image1---
Image1 = Clipboard.GetData(vbCFBitmap)
End Sub

'---------------------------------------------------------------------------
---------------------

Armoul666.

"Zeb" a écrit dans le message de
news:bhslkh$pbg$
Bonjour à tous,

Je recherche une fonction ou autre qui me permet d'imprimé une interface
avec tout ses composants. Une fonction qui peut s'appliqué a toute
interface.

Je vous remerci d'avance pour vos réponses.

Cordialement,




Avatar
Zeb
merci pour ta réponse aussi rapide mais

Il me met une erreur 482 quand j'utilise PrintForm
de plus j'ai essayé d'aller sur
http://support.microsoft.com/default.aspx?kbid1299
mais il ne trouve pas la page.


"François Picalausa" a écrit dans le message de news:

Bonjour/soir,

Essaye
MyForm.PrintForm
Cette méthode peut poser quelques problèmes.
La fiche suivante de la KB propose une solution:
http://support.microsoft.com/default.aspx?kbid1299

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Zeb" a écrit dans le message de
news:bhslkh$pbg$
> Bonjour à tous,
>
> Je recherche une fonction ou autre qui me permet d'imprimé une
> interface avec tout ses composants. Une fonction qui peut s'appliqué
> a toute interface.
>
> Je vous remerci d'avance pour vos réponses.
>
> Cordialement,




Avatar
Sebdo
"Zeb" a écrit dans le message news:
bhslkh$pbg$
Bonjour à tous,

Je recherche une fonction ou autre qui me permet d'imprimé une interface
avec tout ses composants. Une fonction qui peut s'appliqué a toute
interface.

Je vous remerci d'avance pour vos réponses.

Cordialement,





T vraiment trop nul , CREZ !!!!!!
Avatar
François Picalausa
Bonjour/soir,

Essaye ce lien ci:
http://support.microsoft.com/?scid=kb;fr;161299

Pour trouver d'où vient l'erreur 482 (Erreur imprimante), essaye avec Print,
simplement, pour voir si VB arrive à imprimer qqch.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Zeb" a écrit dans le message de
news:bhsmvp$pit$
merci pour ta réponse aussi rapide mais

Il me met une erreur 482 quand j'utilise PrintForm
de plus j'ai essayé d'aller sur
http://support.microsoft.com/default.aspx?kbid1299
mais il ne trouve pas la page.


"François Picalausa" a écrit dans le message de
news:
Bonjour/soir,

Essaye
MyForm.PrintForm
Cette méthode peut poser quelques problèmes.
La fiche suivante de la KB propose une solution:
http://support.microsoft.com/default.aspx?kbid1299

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Zeb" a écrit dans le message de
news:bhslkh$pbg$
Bonjour à tous,

Je recherche une fonction ou autre qui me permet d'imprimé une
interface avec tout ses composants. Une fonction qui peut s'appliqué
a toute interface.

Je vous remerci d'avance pour vos réponses.

Cordialement,






Avatar
Zeb
Merci pour la réponse, ca marche trop bien mais maintenant je n'arrive pas a
imprimé cette copy d'ecran en format
paysage et pourtant j'ai bien indiqué le format d'impression dans le
'CommonDialog1.ShowPrinter'
et dans le doute j'ai rajouter : 'CommonDialog1.OrientationÍlLandscape'

mais il n'imprime qu'en portrait
voila la commande:

Printer.PaintPicture Image1, 0, 0

Merci d'avance

"Armoul666" a écrit dans le message de news:
3f41e1dd$0$9622$
Bonjour,

J'ai trouvé ce code dans la liste des API du site Visual Basic Research
Center :

Ce code fait un imprime écran de la fenêtre active et le copie dans un
contrôle imagebox




'---------------------------------------------------------------------------
---------------------
' Exemple de Phil ()

Option Explicit

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

' bVk est le code ascii de la touche
Private Const VK_LWIN = &H5B
Private Const VK_APPS = &H5D

' Pour d'autres touches...
' a à z 65 à 90
' Home 36
' End 35
' Flêche vers le haut 38
' Flêche vers le bas 40
' Flêche vers la gauche 37
' Flêche vers la droite 39
' Echap 27
' Impr écran 44 (= vbKeySnapshot)
' Page haut 33
' Page bas 34
' Insert 45
' F1 à F12 112 à 123
' Barre d'espace 32
' Ctrl 17
' Alt 18
' Maj 16
' Verr Num 144
' Arrêt défil 145
' Tab 9
' Shift 16

' bscan (Lorsque l'on utilise la touche imprime écran)
Const TheScreen = 1 ' Copie l'écran
Const TheForm = 0 ' Copie la fenêtre active

' dwFlags (le drapeau) :
Const KEYEVENTF_EXTENDEDKEY = &H1 ' Pour actionner les touches étendues
Const KEYEVENTF_KEYUP = &H2 ' Relache la touche

' ---Cet exemple montre comment gérer Windows---
Sub GestionWindows(Index As Integer)
' ---déclarations des variables---
Dim VK_ACTION As Long
' ---Traite l'action---
Select Case Index
Case 0 ' Ouverture de l'Exploreur
VK_ACTION = &H45 ' La lettre e (ascii 69)
Case 1 ' Rechercher des fichiers
VK_ACTION = &H46 ' La lettre f (ascii 70)
Case 2 ' Réduire toutes les fenêtres
VK_ACTION = &H4D ' La lettre m (ascii 77)
Case 3 ' Ouverture du menu exécuter
VK_ACTION = &H52 ' La lettre r (ascii 82)
Case 4 ' Actionner le menu démarrer
VK_ACTION = &H5B ' Le bouton démarrer de windows sur le


clavier
(ascci 91)
End Select
' ---Envoie de la séquence de touche---
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(VK_ACTION, 0, 0, 0)
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub

Private Sub Command1_Click()
' ---Copie d'écran de la forme active (pour l'écran utiliser
"TheScreen")---
keybd_event vbKeySnapshot, TheForm, 0&, 0&
' ---On laisse le temps à Windows de charger l'image en mémoire---
DoEvents
' ---Copie du presse-papier dans le contrôle image1---
Image1 = Clipboard.GetData(vbCFBitmap)
End Sub




'---------------------------------------------------------------------------
---------------------

Armoul666.

"Zeb" a écrit dans le message de
news:bhslkh$pbg$
> Bonjour à tous,
>
> Je recherche une fonction ou autre qui me permet d'imprimé une interface
> avec tout ses composants. Une fonction qui peut s'appliqué a toute
> interface.
>
> Je vous remerci d'avance pour vos réponses.
>
> Cordialement,
>
>