我有一个场景,我必须检查用户是否已经打开了Microsoft Word.如果他有,那么我必须杀死winword.exe进程并继续执行我的代码.
有没有人有任何使用vb.net或c#杀死进程的直接代码?
我正试图杀死远程机器上的进程.但我得到错误.我做错了什么,我该怎么做才能做到这一点?
我的代码:
var iu = new ImpersonateUser();
try
{
iu.Impersonate(Domain, _userName, _pass);
foreach (var process in Process.GetProcessesByName("notepad", "RemoteMachine"))
{
string processPath = pathToExe; //Is set as constant (and is correct)
process.Kill();
Thread.Sleep(3000);
Process.Start(processPath);
}
}
catch (Exception ex)
{
lblStatus.Text = ex.ToString();
}
finally
{
iu.Undo();
}
Run Code Online (Sandbox Code Playgroud)
只是为了澄清ImpersonateUser,它让我以正确的用户权限登录到远程机器.所以问题不存在.当我调试并检查过程对象时,在这种情况下我找到了记事本的正确进程ID.所以连接工作正常.但是当我试图杀死进程时,我得到了这个错误:
System.NotSupportedException: Feature is not supported for remote machines. at System.Diagnostics.Process.EnsureState
Run Code Online (Sandbox Code Playgroud)