Supprimée une Bitmap précédemment executée

Résolu
ult1m4tum
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012
- 30 déc. 2011 à 16:01
ult1m4tum
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012
- 31 déc. 2011 à 19:15
Messieurs, mesdames bonjour/bonsoir !


J'ai actuellement un gros souci (depuis 2H je m'y casse la tête)

J'ai créé un programme qui fait un "Impécran" et qui l'enregistre au format bmp sous le chemin c:/screen.bmp jusque là tout va bien ...

Mais j'ai besoin pour ce programme d'écraser cette image, et lorsque je lui demande de le faire :

        If File.Exists("C:\screen.bmp") Then
            File.Delete("C:\screen.bmp")
        Else [...]

Il me met une jolie exception du Type :
Le processus est déjà utilisé ailleur vous ne pouvez le modifier (en gros)

Alors j'ai essayé pas mal de choses, comme faire un
PictureBox1.dispose()
et ensuite un
Capture = Nothing
pour libérer le curseur puis d'ensuite faire un "Kill("c:\screen.bmp") mais RIEN n'y fait ... impossible de le supprimer automatiquement ?

10 réponses

cs_Le Pivert
Messages postés
7801
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 août 2022
132
31 déc. 2011 à 16:17
Bonjour,
Dans un programme j'ai eu ce problème je l'ai résolu comme ceci:

 If File.Exists("C:\screen.bmp") Then
              System.Threading.Thread.Sleep(2000) 'on marque une pause de 2 secondes
          File.Delete("C:\screen.bmp")
Else
....
End If


mais dans un autre cela n'a pas marché, j'ai supprimé le fichier à l'ouverture de l'application. Si cela peut t'aider!
Bone fin d'année à tous
@+ Le Pivert
Le Pivert
3
NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
30 déc. 2011 à 19:31
Bonjour,

Comment tu utilises l'image et le fichier ailleurs, pour pouvoir te proposer une alternative.

As-tu regardé le membre Clone de l'objet Image ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
ehjoe
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
31 déc. 2011 à 08:27
Bonjour ult1m4tum,

Si tu as en processus ConIme (exe), tente de le détruire manuellement pour voir ?

Cordialement, Joe.
0
ult1m4tum
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012

31 déc. 2011 à 13:23
L'image est utilisée par mon programme (ulti.exe) et cela, même en supprimant la pictureBox qui la charge donc le souci est vraiment le libérer l'image, j'ai essayé de la redemarrer pour la fermer manuellement aprèès et même en faisant cela,impossible de la supprimer pour la même raison :
Le fichier ne peut pas etre supprimé car il est utilisé ailleurs ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ult1m4tum
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012

31 déc. 2011 à 13:25
o_O Impossible d'édite ... Voici donc le code en double post(désolé)

'Déclaration de variables
        Dim Bounds As Rectangle
        Dim Capture As System.Drawing.Bitmap
        Dim Graph As Graphics

        If File.Exists("C:\screen.bmp") Then
            File.Delete("C:\screen.bmp")
        Else
            On Error Resume Next
        End If
        Bounds = Screen.PrimaryScreen.Bounds 'définition de la taille de l'écran
        'Création de l'image
        Capture = New System.Drawing.Bitmap(Bounds.Width, Bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb)
        Graph = Graphics.FromImage(Capture)
        Graph.CopyFromScreen(Bounds.X, Bounds.Y, 0, 0, Bounds.Size, CopyPixelOperation.SourceCopy)
        'Insertion de l'image
        PictureBox1.Image = Capture
        PictureBox1.Image.Save("C:\screen.bmp")
    End Sub
[................]
        PictureBox1.Dispose()      'libere la picturebox
        Capture = Nothing    'libère le curseur
0
NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
31 déc. 2011 à 14:11
Bonjour,

C'est l'image qu'il faut Disposer, pas le PictureBox.
Et si tu clones l'image avant de la sauvegarder (un objet sauvegarde, l'autre affiche), ça passe ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
ult1m4tum
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012

31 déc. 2011 à 14:42
Ca ne passe pas non plus, en fait, même si je n'affiche pas l'image dans la PictureBox elle refuse de se décharger ...
0
NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
31 déc. 2011 à 15:57
Bonjour,

Tu as bien fais le Dispose de l'image ?
Si oui, il est encore étonnant que le fichier soit verrouillé.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
ehjoe
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
31 déc. 2011 à 16:19
Et ce que je t'ai demandé tu as l'intention d'essayer quand ?
0
ult1m4tum
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012

31 déc. 2011 à 19:15
Merci a tous pour vos réponses, cela était effectivement un problème de temps d'attente entre le chargement et la fermeture de l'image !

Donc un grand Merci a vous tous et plus précisément a LePivert qui m'a apporté la solution.

PS : Joe, aucun processus de ce nom en cours d'utilisation du programme mais merci de l'attention portée au sujet !

Le probleme est donc résolu :D
0