Fermer complètement acrobat reader

elwood973 Messages postés 4 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 6 février 2009 - 5 févr. 2009 à 20:50
elwood973 Messages postés 4 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 6 février 2009 - 6 févr. 2009 à 19:57
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 févr. 2009 à 21:25
tentes d'ourvir une autre page web...

comme about:blank
0
elwood973 Messages postés 4 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 6 février 2009
5 févr. 2009 à 22:41
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()
0
elwood973 Messages postés 4 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 6 février 2009
5 févr. 2009 à 22:46
ah pardon j'oubliais, le "about:blank" n'as pas fonctionné mais merci quand même.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
6 févr. 2009 à 06:24
tu es en train de killer toutes les instances de acrobat reader detectées sur ton système ?
0

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

Posez votre question
elwood973 Messages postés 4 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 6 février 2009
6 févr. 2009 à 19:57
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.
0