一尘不染

如何使用Vb.NET或C#终止进程?

c#

我有一种情况,我必须检查用户是否已经打开了Microsoft Word。如果他有,那么我必须终止winword.exe进程并继续执行我的代码。

是否有任何简单的代码可以使用vb.net或c#杀死进程?


阅读 232

收藏
2020-05-19

共1个答案

一尘不染

您将要使用System.Diagnostics.Process.Kill方法。您可以使用System.Diagnostics.Proccess.GetProcessesByName获得所需的进程 。

示例已经在此处发布,但是我发现non.exe版本的效果更好,所以类似:

foreach ( Process p in System.Diagnostics.Process.GetProcessesByName("winword") )
{
    try
    {
        p.Kill();
        p.WaitForExit(); // possibly with a timeout
    }
    catch ( Win32Exception winException )
    {
        // process was terminating or can't be terminated - deal with it
    }
    catch ( InvalidOperationException invalidException )
    {
        // process has already exited - might be able to let this one go
     }
}

您可能不必处理NotSupportedException,这表明该过程是远程的。

2020-05-19