COPIE ECRAN "FENETRE"

Le
Bernard SOBRA
Bon, je me lance :

Je doit imprimer le contenu d'une fenêtre de saisie assez volumineuse. J'ai
la flemme de faire un état car il faut tout reprendre (le copier/coller
entre champ de fenêtre et champ d'état ne fonctionne pas!)

Il me suffirai d'imprimer une copie de l'écran, ca irait.

J'ai écrit le code :

Str_NomFichier est une chaîne = "C:RapportIntervention"
I_Res est un entier
// Copie d' écran
dCopieImage(copieEcran, Image2)
I_Res = dSauveImageBMP (Image2,Str_NomFichier)


// Impression
iAperçu(iPage, "Aperçu écran", Vrai)
iImprimeImage (Str_NomFichier, 20,20)
iFinImprime

En fait l'image stockée sur le disque est bien une "copie d'écran", avec
tout l'arrière plan de ma fenêtre (le bureau), et pas seulement la fenetre.

COMMENT N'OBTENIR QUE L'IMAGE DE LA FENETRE ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
patrick
Le #14603661
pour copier la fenetre en avant plan
il faut faire 'alt' + imprime ecran
Patrick

"Bernard SOBRA" 46f51264$0$27400$
Bon, je me lance :

Je doit imprimer le contenu d'une fenêtre de saisie assez volumineuse.
J'ai la flemme de faire un état car il faut tout reprendre (le
copier/coller entre champ de fenêtre et champ d'état ne fonctionne pas!)

Il me suffirai d'imprimer une copie de l'écran, ca irait.

J'ai écrit le code :

Str_NomFichier est une chaîne = "C:RapportIntervention"
I_Res est un entier
// Copie d' écran
dCopieImage(copieEcran, Image2)
I_Res = dSauveImageBMP (Image2,Str_NomFichier)
......

// Impression
iAperçu(iPage, "Aperçu écran", Vrai)
iImprimeImage (Str_NomFichier, 20,20)
iFinImprime

En fait l'image stockée sur le disque est bien une "copie d'écran", avec
tout l'arrière plan de ma fenêtre (le bureau), et pas seulement la
fenetre.

COMMENT N'OBTENIR QUE L'IMAGE DE LA FENETRE ?







Albert
Le #14603401
Bonjour,

Ayant eu un problème, désolé si mon post fait double emploi.

Je pense que l'examen du code de l'exemple WD CopieEcran de la LST 61
pourrait apporter une réponse voire même la solution de votre problème

Cordialement

Albert
Olivier Bolender
Le #14594991
Bonjour,

Il existe une fonction native:

ImageFenêtre("FEN_Principale.WDW","test.bmp")
FEN_Principale.WDW représente le nom de la fenêtre (fichier) et
"test.bmp" le nom du fichier. le format est, comme vous l'aurez
remarquez BITMAP.
J'ai réalisé un test, et cela fonctionne.

Cordialement,
Olivier.
Olivier Bolender
Le #14594951
En faite, j'ai trouvé une astuce pour faire une capture écran de la
fenetre courante:
crée deux zone images (source et cible), on initialise la largeur et
la hauteur de source à la réso de l'écran, puis on fait une capture:
dCopieImage(copieEcran,IMG_Source)

Puis on définit la largeur et hauteur correspondant à la fenetre en
cours pour l'image cible
IMG_Cible..Largeur = FEN_Principale..Largeur
IMG_Cible..Hauteur = FEN_Principale..Hauteur

puis on copie l'image source à l'image cible en précisant la position
x,y de la source ainsi que la largeur/hauteur de la fenetre, tel que:
dCopieImage(IMG_Source,IMG_Cible,copieFusionCopie,FEN_Principale..X,
FEN_Principale..Y,IMG_Cible..Hauteur, IMG_Cible..Largeur)

et on sauve le tout:
dSauveImagePNG(IMG_Cible, "blablabla.png")

Cela meriterait d'être écrit sous la forme d'une fonction, et aussi
que cette fonction soit plus élaboré (capture d'une fenêtre à la vo lé)
Sinon, pour les champs images, il suffit de les rendres invisible.

Enfin bon, c'est une solution trouvé en 10mins, peut mieux faire.

Bonne soirée,
Olivier.
Firetox
Le #14594941
Bonjour,

voir aussi le super champs impression ecran dans windev qui fait ca avec 1
image et imprime l'image

Bon dev
@+

"Olivier Bolender"
En faite, j'ai trouvé une astuce pour faire une capture écran de la
fenetre courante:
crée deux zone images (source et cible), on initialise la largeur et
la hauteur de source à la réso de l'écran, puis on fait une capture:
dCopieImage(copieEcran,IMG_Source)

Puis on définit la largeur et hauteur correspondant à la fenetre en
cours pour l'image cible
IMG_Cible..Largeur = FEN_Principale..Largeur
IMG_Cible..Hauteur = FEN_Principale..Hauteur

puis on copie l'image source à l'image cible en précisant la position
x,y de la source ainsi que la largeur/hauteur de la fenetre, tel que:
dCopieImage(IMG_Source,IMG_Cible,copieFusionCopie,FEN_Principale..X,
FEN_Principale..Y,IMG_Cible..Hauteur, IMG_Cible..Largeur)

et on sauve le tout:
dSauveImagePNG(IMG_Cible, "blablabla.png")

Cela meriterait d'être écrit sous la forme d'une fonction, et aussi
que cette fonction soit plus élaboré (capture d'une fenêtre à la volé)
Sinon, pour les champs images, il suffit de les rendres invisible.

Enfin bon, c'est une solution trouvé en 10mins, peut mieux faire.

Bonne soirée,
Olivier.
Publicité
Poster une réponse
Anonyme