Fermer complètement acrobat reader

Signaler
Messages postés
4
Date d'inscription
mardi 15 janvier 2008
Statut
Membre
Dernière intervention
6 février 2009
-
Messages postés
4
Date d'inscription
mardi 15 janvier 2008
Statut
Membre
Dernière intervention
6 février 2009
-
Bonjour,
j'ai une form dans laquelle j'affiche des pdf dans un webbrowser quand on clique sur la liste d'un combobox.
Je souhaiterais pouvoir travailler sur ces fichiers PDF (les renommer par exemple) et je dois donc "libérer les ressources".
Je n'ouvre donc pas le fichier d'origine mais je le copie dans un autre dossier et ouvre ce nouveau fichier créé.

Quand je ferme la form, je supprime les dossiers pdf que j'ai copié jusque là. Le problème se produit lorsque je ferme la form est qu'on me dit que le fichier est utilisé par un autre processus et qu'il ne peut donc pas être supprimé. J'ai essayé de fermer AcroRd32 avec un kill ou de faire un dispose sur mon webbrowser mais ça marche pas.

Merci de vos conseil

Si vous avez besoin du code n'hésitez pas à me demander

   

5 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
tentes d'ourvir une autre page web...

comme about:blank
Messages postés
4
Date d'inscription
mardi 15 janvier 2008
Statut
Membre
Dernière intervention
6 février 2009

Je viens de trouver la solution et complètement au hasard. J'ai placé un msgbox juste pour vérifier une variable et le simple fait que le programme fasse une pause sur le msgbox, la manip a fonctionné. j'ai pu killer acrord32 et je n'ai pas eu de problème. Du coup j'ai remplacé mon msgbox par un "System.Threading.Thread.Sleep(1000)" et ça fonctionne.

Mais est-ce bien normal tout ça, il y a qqchose qui m'échappe. Pourquoi le programme a-t-il besoin de faire une pause à cet endroit???

Voilà le bout de code qui posait problème:
'c'est une partie du code qui s'exécute à la fermeture de la form
For x As Integer = 0 To UBound(Prc)
            If Prc(x).ProcessName.ToUpper(New System.Globalization.CultureInfo("fr-FR", False)) = "ACRORD32" Then
                System.Threading.Thread.Sleep(1000)
                Prc(x).Kill()
            End If
        Next
        Dim dirInfo As New System.IO.DirectoryInfo(My.Settings.CheminConfig & "\Resources")
        Dim files() As System.IO.FileInfo = dirInfo.GetFiles("*.pdf")
        For Each fichierPDF As String In Directory.GetFiles(My.Settings.CheminConfig & "\Resources")
            If Path.GetExtension(fichierPDF) = ".pdf"  Then
                'la ligne qui posait problème
                System.IO.File.Delete(fichierPDF)
            End If
        Next
        Me.Dispose()
Messages postés
4
Date d'inscription
mardi 15 janvier 2008
Statut
Membre
Dernière intervention
6 février 2009

ah pardon j'oubliais, le "about:blank" n'as pas fonctionné mais merci quand même.
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
tu es en train de killer toutes les instances de acrobat reader detectées sur ton système ?
Messages postés
4
Date d'inscription
mardi 15 janvier 2008
Statut
Membre
Dernière intervention
6 février 2009

Je vais tenter d'être plus clair.
Mon application affiche des pdf situés sur un partage de réseau.
Je fais une copie (sur l'ordinateur client) du fichier à afficher et j'ouvre en fait ce nouveau fichier. Dans le "formClosed", je programme la suppression des fichiers copiés et ça, ça posait problème. Killer le process AcroRd32 et faire une pause dans le programme ont permis de solutionner le problème mais je comprend pas pourquoi faut faire une pause.