Bonjour,

je rencontre un petit soucis de valeur de PID dans la situation suivante :

mon application instancie excel, et pour fermer excel sans utiliser ce sauvage de Shell("TASKKILL /F /IM excel.exe") j'ai mis un petit ensemble de boucles pour récupérer l'id du processus excel que mon appli crée pour ne shooter que celui là.

le problème, c'est que mon application ne semble pas voir mon processus excel après l'avoir lancé. J'ai peut être fait une erreur quelque part donc voici le code, dans la partie qui nous intéresse :

Code : 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
Private Sub BGW_CDX_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BGW_CDX.DoWork
        Dim XlApp As Excel.Application
 
        Dim XL_Runing As Process() = Process.GetProcessesByName("Excel") ' Liste des processus Excel en cours d'exécution
        Dim XlApp_Proces As Integer ' ID du processus Excel de cette Application
        XlApp_Proces = 0
 
        For Each Process In XL_Runing
            XlApp_Proces -= Process.Id
        Next
 
        XlApp = CreateObject("Excel.Application")
 
        For Each Process In XL_Runing
            XlApp_Proces += Process.Id
        Next
' ici par soustraction, XlApp_Proces devrait avoir pour valeur le PID du du processus excel en automation, or, il me renvoi "0" (Zéro)
 
'[...] 
 
' et donc ici je me prends un "Accès refusé" quand je passe la commande suivante
Process.GetProcessById(XlApp_Proces).Kill()
[...]
End Sub
J'ai testé le code en laissant volontairement d'autres processus d'excel en cours, et tous les PID sont pris en compte, sauf... celle qui m'intéresse.

A savoir également que si je demande un Process_Sart_Name = Process.StartInfo.FileName j'ai systématiquement une valeur vide ("") quelque soit le PID Excel.

Je sèche, vu mes connaissances limitées. à Moins que ce ne soit dû à l'utilisation d'un BGW ?

Merci d'avance pour vos tuyaux !

@+
Phoe