C# 进程终止方法不起作用

C# 进程终止方法不起作用,c#,process,C#,Process,我有一个C代码,它会检查Winword实例,如果有超过1个,我会使用process.kill方法杀死其他具有Winword进程名的进程 似乎process.kill无法杀死winword。你能帮忙吗?到目前为止,我们必须重新启动服务器才能杀死其他winword实例。此方法应该有效 foreach (var process in Process.GetProcessesByName("winword")) { try { process.Kill(); }

我有一个C代码,它会检查Winword实例,如果有超过1个,我会使用process.kill方法杀死其他具有Winword进程名的进程


似乎process.kill无法杀死winword。你能帮忙吗?到目前为止,我们必须重新启动服务器才能杀死其他winword实例。

此方法应该有效

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

大写字母不重要,但您可以尝试删除WINWORD或WINWORD.EXE

任何错误?应用程序是否具有终止进程/winword的权限?Kill方法异步执行。调用Kill方法后,调用WaitForExit方法以等待进程退出,或者检查HasExited属性以确定进程是否已退出。如何选择单词process?你用什么代码来选择和杀死?什么版本的word,什么版本的windows?你能显示你的代码吗?请将你现有的代码与你的问题一起发布。我会在循环中添加一个try catch以确保。也许这个过程被提升了。我使用的代码和你提到的一样。我试着自己杀了这个词,但做不到。只有重新启动服务器才有效。@BugFinder我使用的是windows 2003和ms office2007@akhilPatel你能从任务管理器中终止进程吗?如果是的话。将该确切名称复制到代码中。并张贴你的EXACT代码,而不是它的关键字。然后发布what Process.getProcessByNameWinWord Returns碰巧我也需要这个Excel解决方案。Youri Leenman您的解决方案非常有效!我是如何实现它的:System.Diagnostics.Process[]allExcel;allExcel=System.Diagnostics.Process.GetProcessesByNameexcel;对于int i=0;i