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 :
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.
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
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
Partager