Bonjour,

Je fait des testes pour un future développement qui ouvrira et fermera des fichiers PDF. Alors pour commencer, j'ai essayer avec quelque chose de simple, et je coince déjà.

Voici mon code avec une form1 et 4 boutons:
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Public Class Form1
 
    Private PIDs As New Collection
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim ProcessPDF As New Process
        Dim DocumentPDF As String = Application.StartupPath & "\Test.pdf"
        Try
            ProcessPDF.StartInfo.UseShellExecute = True
            ProcessPDF.StartInfo.FileName = DocumentPDF
            ProcessPDF.StartInfo.CreateNoWindow = True
            ProcessPDF.Start()
            PIDs.Add(ProcessPDF.Id, DocumentPDF)
        Catch erreur As Exception
            Console.WriteLine((erreur.Message))
        End Try
    End Sub
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim ProcessPDF As New Process
        Dim DocumentPDF As String = Application.StartupPath & "\Test2.pdf"
        Try
            ProcessPDF.StartInfo.UseShellExecute = True
            ProcessPDF.StartInfo.FileName = DocumentPDF
            ProcessPDF.StartInfo.CreateNoWindow = True
            ProcessPDF.Start()
            PIDs.Add(ProcessPDF.Id, DocumentPDF)
        Catch erreur As Exception
            Console.WriteLine((erreur.Message))
        End Try
    End Sub
 
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim DocumentPDF As String = Application.StartupPath & "\Test.pdf"
        Dim i As Integer
        i = PIDs.Item(DocumentPDF)
        Process.GetProcessById(i).Kill()
        PIDs.Remove(DocumentPDF)
    End Sub
 
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim DocumentPDF As String = Application.StartupPath & "\Test2.pdf"
        Dim i As Integer
        i = PIDs.Item(DocumentPDF)
        Process.GetProcessById(i).Kill()
        PIDs.Remove(DocumentPDF)
    End Sub
 
End Class

Bouton1 ouvre le test.pdf, bouton2 ouvre le test2.pdf, cela fonctionnent plutôt bien

Mais là où ça coince, c'est le bouton 3 ou 4 lorsque je cherche à fermer l'un des document ouvert.
Je récupère bien le PID de mes process, mais j'ai comme l'impression qu'adobe Acrobat DC récupère les documents ouvert pour les intégrés au premier PID du premier document ouvert, ou alors il les gèrent de manière complétement bizzard.
Soit il fermer tout les documents ouvert, soit il ne trouve plus le PID du second document ouvert. Ou encore si un document est déjà ouvert avant l'ouverture des PDF test, il ne trouve simplement pas les PID.

Quelqu'un a-t-il une idée de comment je peux gérer cela ?