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

[Résolu]
Signaler
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012
-
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012
-
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

Messages postés
7473
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
5 août 2021
125
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
Messages postés
14815
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
3 août 2021
156
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
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Bonjour ult1m4tum,

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

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

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 ...
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012

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
Messages postés
14815
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
3 août 2021
156
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
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012

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 ...
Messages postés
14815
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
3 août 2021
156
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
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
30 mars 2014
6
Et ce que je t'ai demandé tu as l'intention d'essayer quand ?
Messages postés
17
Date d'inscription
lundi 23 mai 2011
Statut
Membre
Dernière intervention
1 février 2012

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