Killer excel.exe

rsbill Messages postés 22 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 22 août 2007 - 19 mai 2006 à 11:34
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 31 mai 2006 à 20:41
Salut. Je bosse sur une appli dans laquel j'utilise excel.  J'ouvre donc excel et vais remplir des cellules avant de l'enregistrer sous un autre nom. Le problème et que même après avoir écrit :

wbexcel.close
appexcel.quit

set wsexcel=nothing
set wbexcel=nothing
set appexcel=nothing

un processus excel.exe persiste ce qui fait buger excel lorsque je veux l'ouvrir normalement plus tard.
Est ce que vous auriez une méthode pour arréter le processus excel.exe ou le code qui permettrais de fermer correctement (toutes les) appecxcel.

merci

RS Bill

13 réponses

linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 1
19 mai 2006 à 12:57
Salut,


j'ai déjà eu le même soucis que toi et j'ai remarqué que c'était dû à l'emploi de certaines fonctionnalités d'excel.

Tu peux peut être essayé de déterminer ce qui laisse le process excel chargé.
0
rsbill Messages postés 22 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 22 août 2007
19 mai 2006 à 13:13
Le problème est que je suis ultra débutant en vb et en programmation tout court. Pour l'instant j'arrive à m'en sortir grace à vb france et les sources disponibles, mais je serais bien imcapable de déterminer qu'est qui fait que le process reste chargé!

merci quand même

RS Bill
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
22 mai 2006 à 11:23
Bonjour,

Faut faire un kill du process excel à la fin du programme

ya plein de messages ki traitent de ça...

-- Pourquoi faire simple quand on peut faire compliquer --
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
22 mai 2006 à 11:33
 Bonjour à tous....

Exemple de kill avec WMI

'Arrêt d'un Process
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" _
    & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'excel.exe' ")
For Each objProcess in colProcessList
    objProcess.Terminate()
Next


Set objWMIService = Nothing
Set colProcessList = Nothing

jean-marc
0

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

Posez votre question
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
22 mai 2006 à 11:48
oh la non

trop dangereux !!!

il faut repérer l'ID de process lancé puis killer que celui ki t'intéresse !

-- Pourquoi faire simple quand on peut faire compliquer --
0
rsbill Messages postés 22 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 22 août 2007
22 mai 2006 à 17:31
merci JMO je vais essayer ça. Eldim est ce que tu peut me dire quel est le risque, voir comment faire pour répérer l'ID du process. J'avour que la, le niveau est trop élevé pour moi!

merci beaucoup

RS Bill
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
22 mai 2006 à 18:11
le risque c'est que tu peux avoir plusieurs fichiers excel d'ouverts tu vas tous les tuer en même temps...

si tu as plusieurs utilisateurs ça va tuer leurs processus excel si tu es administrateur. Si tu n'es pas administrateur le traitement de recherche des processus va planter ton application.

fais une recherche sur ce site sur process excel

-- Pourquoi faire simple quand on peut faire compliquer --
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
22 mai 2006 à 20:32
 Bonsoir,

Eldim a raison dans un certain sens.
Dans l'exemple que j'ai proposé, la méthode WMI permet de "killé" tous les
process "excel" en cours.
Néanmoins, comme le suggère Eldim, en vb6, tu pourras selectionner par l'ID ou le handle,
le fichier a "killé". Mais, question, est-ce que ça va libérer toutes les ressources ???
No lo se. Je n'ai aucune compétence en vb6.

Tout dépend le context de ton exploit, server...
Avec WMI, c'est radical !!!

Bonne soirée de prog.
jean-marc
0
rsbill Messages postés 22 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 22 août 2007
23 mai 2006 à 09:04
Ok merci pour la précision les gars. Mon appli est très simple elle fonctionne en local, pas de pb d'administrateur ou autre. Si je kill toute les applis excel en même temps c'est pas un problème.
Merci Eldim, effectivement il y a pas mal de choses sur les process excel.  C'est un peu embetant car souvent les codes n'ont que très peu de commentaires et si tu n'as pas un certains niveau tu comprend rien. C'est pas une critique JMO mais plutot une remarque.

merci

RS Bill
0
rsbill Messages postés 22 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 22 août 2007
29 mai 2006 à 10:05
merci jmo ça marche nickel ton code. Le seul hic c'est que j'utilise option explicit!!
et je ne sais pas comment déclarer: objWMIService, colProcessList.....
j'ai essayer différentes choses mais sans succés.est il nécessaire d'ajouter une référence?

merci à +

RS Bill
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
29 mai 2006 à 11:15
Salut !
Met les en "object"

-- Pourquoi faire simple quand on peut faire compliquer --
0
rsbill Messages postés 22 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 22 août 2007
29 mai 2006 à 11:41
merci! ça y est, ça marche. merci je connaissais pas object. Maintenant je me plonge dans l'aide pour bien comprendre comment l'utiliser!

RS Bill
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
31 mai 2006 à 20:41
 Bonsoir,

'Init des objets
Dim objWMIService
Dim colProcessList


'Libération des ressources à placer à la fin du script
Set objWMIService = Nothing
Set colProcessList = Nothing

jean-marc
0
Rejoignez-nous