Bonjour,

J'ai développé une application en VB6 qui fonctionne sans problème sous Windows XP.
Elle fonctionne également sous Windows 7, à l'exception de l'impression des documents que je réalise à partir d'une copie d'écran de l'interface.
J'utilise donc le presse-papier et mon problème se situe à la récupération de l'image placée dans ce dernier. (en effet lorsque je fais un ctrl+V sous paint, je récupère bien l'image Copier préalablement).

Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
Public myPicture1 As StdPicture
[...]
Dim DebutX, DebutY As Single
 
[...]
 
'** Configuration de l'impression
Printer.ColorMode = 2       'en couleur
Printer.ScaleMode = 6       'en millimètres
Printer.Orientation = 1     'En portrait
Printer.PrintQuality = 300  'résolution en dpi
 
[...]
Clipboard.Clear 'vide le presse-papier
Call keybd_event(VK_SNAPSHOT, 1&, 0&, 0&) 'met la fenêtre dans le presse-papier
DoEvents
Set myPicture1 = Clipboard.GetData() 
 
'** Mise en page de la feuille à imprimer
DebutX = (Printer.ScaleWidth - F_FICHETECH_UP.ScaleWidth) / 2 'début sur largeur pour l'impression
DebutY = (Printer.ScaleHeight - F_FICHETECH_UP.ScaleHeight - F_FICHETECH_DOWN.ScaleHeight) / 2 'début sur hauteur pour l'impression
Printer.PaintPicture myPicture1, DebutX, DebutY, Int(F_FICHETECH_UP.ScaleWidth), Int(F_FICHETECH_UP.ScaleHeight)
 
[...]
 
'** Impression
Printer.EndDoc
J'ai également essayé de passer par une picturebox dans laquelle je plaçais l'image temporairement, mais il me renvoie la même erreur ligne 13 - Erreur 481 image incorrecte. En approfondissant un peu, je me rends compte que mypicture1 = 0, ce qui génère une erreur dans Printer.paintpicture.

Ma question est : Quelqu'un a t il une idée pour que mypicture1 ne soit pas égal à 0 ?