Screenshot et preview [Résolu]

Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014
- - Dernière réponse : NHenry
Messages postés
14600
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 décembre 2019
- 30 juin 2011 à 09:13
Bonjours , je fait présentement un project qui consiste a prende une capture d'écran , la sauvegarder dans un fichier spécifique et ensuite de la prévisualiser dans un picturebox. Tout fonctionne bien pour la premiere capture cependant quand je reclique sur mon boutton je me retrouve avec cette erreur : A generic error occurred in GDI+. Voici le code de mon project a présent.

PictureBox1.Image = Nothing

Dim screenImage As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(screenImage)
g.CopyFromScreen(New Point(0, 0), New Point(0, 0), New Size(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height))
screenImage.Save("C:\ULab Test Win", System.Drawing.Imaging.ImageFormat.Jpeg)

PictureBox1.Image = Image.FromFile("C:\ULab Test Win")


l'erreur arrive a la ligne : screenimage.save("C:\......") quelqu'un aurais une idée svp? Merci beaucoup a l'avance et pardonnez moi pour mes fautes de francais
Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
3
Merci
Bonjour,
Il semble que l'exécution de la première ligne dénoncée :
screenImage.Save("C:\ULab Test Win", System.Drawing.Imaging.ImageFormat.Jpeg)

est gêné&e par l'exécution de la 2ème qui ouvre un fichier peut-être non encore totalement créé.
Cela expliquerait qu'en otant la 2ème instruction ===>> plus de plantage.
Essaye de placer entre les deux un DoEvents (ou son équivalent VB.Net), pour voir.


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
14600
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 décembre 2019
137
3
Merci
Bonjour,

Ou sinon, pourquoi ouvrir le fichier ensuite ?
Essayes d'utiliser l'image qui est déjà en mémoire.

Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014
0
Merci
Ah oui j'ai oublier de spécifier.. quand j'enleve la ligne de code : Picturebox1.image = image.fromfile..... (Le code qui load l'image dans le picturebox pour donner un appercu de la capture d'écran) le code ne plante pas
Commenter la réponse de rsx602
Messages postés
14600
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 décembre 2019
137
0
Merci
Bonjour,

Sans trop m'avancer, essayes en mettant un nom sans espace et avec une extension.

Sinon, je ne vois pas de raison spécifique.

Mon site
Commenter la réponse de NHenry
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014
0
Merci
screenImage.Save("C:\ULabTestWin.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

Toujours la meme erreur =(
Commenter la réponse de rsx602
Messages postés
14600
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 décembre 2019
137
0
Merci
Bonjour,

Tu as essayé en Dispose-ant les différents éléments (sauf le Bitmap) avant d'enregistrer ?

Tu as essayé de décorreller l'enregistrement et la lecture avec un timer ou un bouton par exemple ?

Si ça fonctionne, peut être qu'un DoEvents ou un Sleep devrait aider.

Mon site
Commenter la réponse de NHenry
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014
0
Merci
Oui j'ai essailer de mettre le save de la screenshot sur un bouton simple. La Lecture sur un autre. Et le "Picturebox1.image = nothing" sur un autre boutton. Toujours la meme erreur. Cependant comme j'ai dit plus haut si je ne fait aucun "preview" de la capture d'écran je peut prende autant de capture que je veut sans avoir aucune erreur... Je comprend pas trop le problème , peut-etre aurais tu une meilleur suggestion pour faire une capture d'écran qui serais plus stable? Merci de ton aide NHenry.
Commenter la réponse de rsx602
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
Doublé par NHenry


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
215
0
Merci
A tout hasard

Ce lien montre un code ressemblant au tien mais avec quelques petites nuances, jusqu'à la sauvegarde sur fichier.
Je ne connais toutefois rien à VB.Net, que je n'ai par ailleurs pas pour tester.


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014
0
Merci
NHenry.... MErci beaucoup... en effect j'ai utilisé limage qui est en mémoire et tout marche , Merci a vous deux pour l'aide
Commenter la réponse de rsx602
Messages postés
14600
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 décembre 2019
137
0
Merci
Bonjour,

Ce forum est là pour ça :)

Si ton problèmes est résolu, pense à mettre "Réponse acceptée" sur le ou les messages qui t'ont aidés.

Mon site
Commenter la réponse de NHenry