C# 使用C暂时禁用操作系统中的进程#
我想在运行exe时禁用操作系统中的进程。如果前一个进程在我的进程启动时运行,它将被禁用,在我的exe关闭后,它将继续运行 我正在使用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
系统.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并显示一个最简单的示例,说明您在做什么,并更好地描述您在假装做什么。以下是我的代码。您要做的是“暂停”进程,请参阅