Tuer Les Processus Excel C#
J'ai pour 2 processus d'excel. Par exemple:
1) example1.xlsx
2) example2.xlsx
Comment tuer en premier "example1.xlsx"?
J'utilise ce code:
foreach (Process clsProcess in Process.GetProcesses())
if (clsProcess.ProcessName.Equals("EXCEL")) //Process Excel?
clsProcess.Kill();
Que tuer un à la fois.
Je veux le tuer, juste un...
Merci.
juste fait une recherche rapide sur Google, essayez de Processus.MainWindowTitle() pour obtenir le titre de le processus Excel, et de décider ce que vous voulez tuer.
La bonne façon de le faire est de suivre et de publier l'Application de l'objet COM et toutes ses dépendances.
La bonne façon de le faire est de suivre et de publier l'Application de l'objet COM et toutes ses dépendances.
OriginalL'auteur Eriksson | 2012-02-16
Vous devez vous connecter pour publier un commentaire.
La ProcessMainWindow Titre va le faire pour vous, il ajoute "Microsoft Excel" pour le nom du fichier:
Donc, essentiellement, (rapide):
Utilisation:
Modifier: Testé et vérifié pour fonctionner.
Que voulez-vous dire qu'il ne fonctionne pas, avez-vous essayez juste d'ouverture example1.xlsx et voir si elle le ferme? Êtes-vous de l'automatisation d'Excel avec un autre code qui est à l'origine de plusieurs EXCEL.exe 's pour frayer
Si vous avez deux document excel ouvert, et si vous exécutez ce code, qui ferment les deux....
J'ai ceci: Excel.Application xlApp = new Excel.Application(); Excel.Classeur xlBook = xlApp.Les classeurs.Open("c:\\teste.xlsx", 0, false, format, null, null, false, Excel.XlPlatform.xlWindows, null, true, false, 0, true, false, false); Cela fonctionne... Mais pourquoi MainWindowTitle est égal à une chaîne vide, mais pas égal à "Microsoft Excel - teste.xlsx"???
OriginalL'auteur kd7
Si votre code est au travail, cette modification devrait tuer le premier qu'il trouve avec le nom "EXCEL".
Si vous voulez tuer un spécifiques processus, vous allez avoir à donner un peu plus d'informations.
OriginalL'auteur raveturned
kd7 de l' post est une réponse impressionnante et fonctionne bien, juste deux choses à ajouter,
MainWindowTitle
format est -"Filename.xlsx - Excel"
Si votre document excel n'est pas visible alors votre
MainWindowTitle
sera""
à l'aide de la
""
pourMainWindowTitle
va tuer tous les zombies excel processus".OriginalL'auteur Kezzla
Excel sera toujours un processus unique, autant que je sache. Le même processus/windows ouvre de multiples documents à l'intérieur d'elle. Ce que vous voulez faire est d'utiliser Excel automation pour FERMER le document que vous voulez. Peut-être cela vous aidera à démarrer. http://support.microsoft.com/kb/302084
Espère que cette aide.
OriginalL'auteur Ani
Copiez et collez cette. De son fait!
OriginalL'auteur monkSinha
Vous avez besoin de vérifier les descripteurs de fichiers, qui sont ouverts par le processus et de le tuer.
Comment vérifier les descripteurs de fichier de processus est tenue: Comment puis-je obtenir la liste des descripteurs de fichiers ouverts par processus en C#?
C'est un pseudomethod, vous pouvez trouver la mise en œuvre dans mon mentionné stackoverflow lien.
OriginalL'auteur Giedrius
Essayer d'obtenir le principal titre de la fenêtre
OriginalL'auteur Fiacc
juste fait une recherche rapide sur Google, essayez de
Process.MainWindowTitle()
pour obtenir le titre de le processus Excel, et de décider ce que vous voulez tuer.Je ne suis pas sûr au sujet de cette méthode, mais espérons que cela aidera à:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.mainwindowtitle.aspx
OriginalL'auteur JXITC
Utiliser en dessous de la logique pour éviter de Zombie Excel processus dans le Gestionnaire des Tâches
OriginalL'auteur user3255770