Kill Process Excel C#
Ich habe 2 excel-Prozess. Zum Beispiel:
1) example1.xlsx
2) example2.xlsx
Wie töte zuerst "example1.xlsx"?
Ich diesen code verwenden:
foreach (Process clsProcess in Process.GetProcesses())
if (clsProcess.ProcessName.Equals("EXCEL")) //Process Excel?
clsProcess.Kill();
Dass töten beide.
Ich will töten, nur ein...
Danke.
- nur habe eine schnelle Suche auf Google oder versuchen Sie Prozess.MainWindowTitle (), um den Titel der Excel-Prozess, und entscheiden, welche Sie wollen, Sie zu töten.
- Der richtige Weg dies zu tun ist, zu verfolgen, und lassen Sie die Anwendung COM-Objekt und alle seine Abhängigkeiten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ProcessMainWindow Titel wird es für Sie tun, es hängt "Microsoft Excel", um den Namen der Datei:
Also im wesentlichen (quick code):
Verwenden:
Bearbeiten: Getestet und überprüft, um zu arbeiten.
Wenn Ihr den aktuellen code funktioniert, diese änderung sollte zu töten, der erste Prozess findet es mit dem Namen "EXCEL".
Wenn Sie töten wollen eine bestimmten Prozesses, Sie gehen, um zu geben ein wenig mehr information.
kd7 ist post ist eine tolle Antwort und funktioniert gut, nur zwei Dinge hinzufügen,
MainWindowTitle
format -"Filename.xlsx - Excel"
Wenn Ihr excel-Dokument nicht sichtbar ist, dann Ihre
MainWindowTitle
wird""
mit der
""
fürMainWindowTitle
töten alle zombie-excel-Prozess'.Excel wird immer ein einzelner Prozess, der, soweit ich weiß. Der gleiche Prozess/windows öffnet mehrere Dokumente in seinem inneren. Was Sie tun möchten, verwenden Sie Excel-Automatisierung SCHLIEßEN Sie das Dokument, das Sie möchten. Vielleicht erhalten Sie begann. http://support.microsoft.com/kb/302084
Hoffe, das hilft.
Kopieren und fügen Sie diesen. Its done!
Müssen Sie prüfen, Datei-handles, die geöffnet werden, indem die Prozess-und dann töten Sie.
Wie um zu überprüfen, welche Datei-handles Prozess hält: Wie bekomme ich die Liste der offenen file-handles, die durch verarbeiten in C#?
Versuchen, immer das Hauptfenster Titel
nur habe eine schnelle Suche auf Google oder versuchen
Process.MainWindowTitle()
um den Titel der Excel-Prozess, und entscheiden, welche Sie wollen, Sie zu töten.Ich bin mir nicht sicher über diese Methode, aber hoffe, dass diese Hilfe:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.mainwindowtitle.aspx
Verwenden Sie die folgende Logik, um zu verhindern, dass Zombie-Excel-Prozesse, die im Task-Manager