C# 使用C暂时禁用操作系统中的进程#

C# 使用C暂时禁用操作系统中的进程#,c#,operating-system,C#,Operating System,我想在运行exe时禁用操作系统中的进程。如果前一个进程在我的进程启动时运行,它将被禁用,在我的exe关闭后,它将继续运行 我正在使用C#,我尝试了系统.Diagnostics命名空间中的进程.kill方法,但该函数永久关闭了应用程序 过程A; Process A; Process B; Process C; private void findExes() { List<Process> allProcesses = Process.G

我想在运行exe时禁用操作系统中的进程。如果前一个进程在我的进程启动时运行,它将被禁用,在我的exe关闭后,它将继续运行

我正在使用C#,我尝试了
系统.Diagnostics
命名空间中的
进程.kill
方法,但该函数永久关闭了应用程序

过程A;
Process A;
    Process B;
    Process C;

    private void findExes()
    {
        List<Process> allProcesses = Process.GetProcesses().ToList().OrderBy(p => p.ProcessName).ToList();

        A = allProcesses.Find(delegate(Process pro) { return pro.ProcessName == "A"; });
        B = allProcesses.Find(delegate(Process pro) { return pro.ProcessName == "B"; });
        C = allProcesses.Find(delegate(Process pro) { return pro.ProcessName == "C"; });

    }
    private void stopAExe_Click(object sender, EventArgs e)
    { 
        findExes();

        if (A != null)
            A.Kill();

        if (  B != null)
        {
            /// RESUME B.EXE 
            /// B.EXE WİLL CONTİNUE 
        }
    }

    private void startAExe_Click(object sender, EventArgs e)
    { 
        findExes();
        if (A == null)
        {
            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.FileName = @"A.exe";
            Process.Start(startInfo);

            if (B != null)
            {
                /// 
                /// DİSABLE B.EXE  ? 
            }
        }
    }

    private void startBExe_Click(object sender, EventArgs e)
    {

        findExes();

        if (  B == null)
        {
            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.FileName = @"B.exe";
            Process.Start(startInfo);
        } 
    }
过程B; 过程C; 私有void findExes() { 列出allprocesss=Process.getprocesss().ToList().OrderBy(p=>p.ProcessName.ToList(); A=allprocesss.Find(委托(processpro){return pro.ProcessName==“A”;}); B=allprocesss.Find(委托(processpro){return pro.ProcessName==“B”;}); C=allprocesss.Find(委托(processpro){return pro.ProcessName==“C”;}); } 私有void stopAExe_单击(对象发送方,事件参数e) { findExes(); 如果(A!=null) A.杀死(); 如果(B!=null) { ///恢复B.EXE ///B.EXE WİLL CONTİNUE } } 私有void startAExe_单击(对象发送方,事件参数e) { findExes(); 如果(A==null) { ProcessStartInfo startInfo=新的ProcessStartInfo(); startInfo.FileName=@“A.exe”; 进程启动(startInfo); 如果(B!=null) { /// ///DİSABLE B.EXE? } } } 私有void startBExe_单击(对象发送方,事件参数e) { findExes(); 如果(B==null) { ProcessStartInfo startInfo=新的ProcessStartInfo(); startInfo.FileName=@“B.exe”; 进程启动(startInfo); } }
kill停止执行,您可以重新启动它-但这取决于您到底想停止什么?它是服务吗?不是服务,它也是.exe。假设我正在使用C.exe并使用process.start启动B.exe,那么我正在启动A.exe。A.exe开始运行后,B.exe将被禁用。Adter A.exe被用户B.exe停止,将继续。添加A并显示一个最简单的示例,说明您在做什么,并更好地描述您在假装做什么。以下是我的代码。您要做的是“暂停”进程,请参阅