Bonjour, l'exemple ci-dessous permet de faire une capture d'écran sans passer via l'API systèmes ou de composants externes.
Le code suivant permet d'imprimer l'écran dans lequel est affichée la fenêtre en cours.
IMG_DEST est un champ Image invisible de la fenêtre en cours
Dans ta fenêtre exécutant le code d'impression écran, tu crées un champ image "IMG_DEST" puis tu le rends caché (invisible).
// Tu introduis ce code dans ton bouton ou dans l'événement par lequel tu souhaites faire appel à la capture écran
// Nom temporaire de l'image
sNomTemp est une chaîne sNomTemp = fFichierTemp()
// Dimensions de l'écran qui affiche la fenêtre en cours
sInfoEcranEnCours est une chaîne
sInfoEcranEnCours = FenRectangleEcran("", écranSansBarreDesTâches)
// Résultat : <X1> + TAB + <Y1> + TAB + <x2> + TAB + <Y2>.
// Pour imprimer tous les écrans en multi-écran, il faudrait utiliser les fonctions :
// SysListeEcran(), SysRectangleEcran()
nXEcran, nYEcran, nLargeurEcran, nHauteurEcran sont des entiers
nXEcran = ExtraitChaîne(sInfoEcranEnCours, rangPremier)
nYEcran = ExtraitChaîne(sInfoEcranEnCours, rangSuivant)
nLargeurEcran = Abs(Val(ExtraitChaîne(sInfoEcranEnCours, rangSuivant)) - nXEcran)
nHauteurEcran = Abs(Val(ExtraitChaîne(sInfoEcranEnCours, rangSuivant)) - nYEcran)
// Modification de la taille du champ Image pour le mettre à la taille de l'écran
IMG_DEST..Largeur = nLargeurEcran
IMG_DEST..Hauteur = nHauteurEcran
// Copie de l'écran dans le champ Image
dCopieImage(copieEcran, IMG_DEST, copieSrcCopie, ...
nXEcran, nYEcran, nHauteurEcran, nLargeurEcran, 0, 0, nHauteurEcran, nLargeurEcran)
// Sauvegarde de l'image dans un fichier temporaire
dSauveImageJPEG(IMG_DEST, sNomTemp, 90)
// Vide le champ Image (libère la mémoire)
IMG_DEST = ""
// Aperçu avant impression
iAperçu()
// Impression de l'image
iImprimeImage(sNomTemp, 0, 0, iLargeurPage(), iHauteurPage(), iAffichageHomothétique)
iFinImprime()
// Suppression du fichier temporaire de l'image
fSupprime(sNomTemp)
Source - https://doc.pcsoft.fr/?1000020350&name=fenrectangleecran_fonction