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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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 4
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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 4
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
Rejoignez-nous