C#-在我的进程仍在运行时终止另一个进程

C#-在我的进程仍在运行时终止另一个进程,c#,winforms,process,terminate,C#,Winforms,Process,Terminate,我写了一些代码,当我的应用程序仍在运行时,它将关闭另一个(例如记事本),即使记事本重新打开,它也将再次关闭,我尝试了一些,但当我的应用程序启动时,当我的应用程序正在运行时,它将关闭,我打开记事本,记事本不会关闭。这里 foreach (Process Proc in Process.GetProcesses()) if (Proc.ProcessName.Equals("notepad")) Proc.Kill(); 您的代码将终止代码执

我写了一些代码,当我的应用程序仍在运行时,它将关闭另一个(例如记事本),即使记事本重新打开,它也将再次关闭,我尝试了一些,但当我的应用程序启动时,当我的应用程序正在运行时,它将关闭,我打开记事本,记事本不会关闭。这里

foreach (Process Proc in Process.GetProcesses())
            if (Proc.ProcessName.Equals("notepad"))
                Proc.Kill();

您的代码将终止代码执行时正在运行的进程。一旦代码完成执行,它就不再产生任何影响。它不会杀死在代码完成执行后启动的进程


可能您需要检测目标进程何时启动,然后终止它。你可以通过投票来做到这一点,这是相当不雅观的。为了避免轮询,您需要WMI。有很多这样做的例子。例如:

也许这个过程不是记事本?您进行了什么调试?根据此
foreach
循环在程序中的位置,它将只运行一次。你需要对你的问题做出更好的解释。特别是“您遇到的确切问题是什么”,“您试图完成什么”,最后,请围绕此
foreach
发布代码,以便我们可以看到它是如何被调用的。那么您多久运行一次此代码?如果您在记事本打开之前运行此代码,并且不再运行,当然它不会杀死记事本。@krillgar我敢打赌,他正在试图抑制其他一些未公开的超级机密程序,只是以记事本为例。@oebanez“真正的”是您需要找到一种方法,在计时器或其他重复的基础上运行该方法。我不打算为你写代码。很明显,问题的解决取决于你自己。