Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

COPIE ECRAN "FENETRE"

5 réponses
Avatar
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 ?

5 réponses

Avatar
patrick
pour copier la fenetre en avant plan
il faut faire 'alt' + imprime ecran
Patrick

"Bernard SOBRA" a écrit dans le message de news:
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 ?







Avatar
Albert
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
Avatar
Olivier Bolender
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.
Avatar
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 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.
Avatar
Firetox
Bonjour,

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

Bon dev
@+

"Olivier Bolender" a écrit dans le message de news:

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.