2017-04-05 3 views
1

Ich habe einen C# -Code und es überprüft Winword-Instanz und wenn es mehr als 1 Ich verwende process.kill Methode, um andere Prozess mit winword Prozessnamen zu töten.Prozess Kill-Methode funktioniert nicht

Es scheint, die process.kill ist nicht in der Lage, die winword zu töten. Können Sie bitte helfen? Ab sofort müssen wir den Server neu starten, um andere winword Instanzen zu töten.

+1

Alle Fehler zu töten? Anwendung hat die Berechtigung, den Prozess/winword zu beenden? Die Kill-Methode wird asynchron ausgeführt. Rufen Sie nach dem Aufrufen der Kill-Methode die WaitForExit-Methode auf, um auf das Beenden des Prozesses zu warten, oder überprüfen Sie die HasExited-Eigenschaft, um festzustellen, ob der Prozess beendet wurde. –

+0

Wie wählen Sie das Wort Prozess? Welchen Code verwendest du zum Auswählen und Löschen? Welche Version von Word, welche Version von Windows? – BugFinder

+0

Können Sie Ihren Code anzeigen? –

Antwort

2

Diese Methode sollte

foreach (var process in Process.GetProcessesByName("winword")) 
{ 
    try 
    { 
     process.Kill(); 
    } 
    catch(Exception ex) { }; 
} 

Capitals Rolle nicht funktionieren sollte, aber man könnte versuchen "WINWORD" oder "WINWORD.EXE"

+1

Ich würde nur einen Try-Catch innerhalb der Schleife hinzufügen, um sicher zu gehen. Vielleicht ist der Prozess erhöht. – balage

+0

Derselbe Code, den ich benutze, wie du es erwähnst. Ich habe versucht, das Wort selbst zu töten, aber ich kann es nicht tun. Nur der Neustart des Servers funktioniert. –

+0

@BugFinder Ich benutze Windows 2003 und MS Office 2007 –

Verwandte Themen