查找进程、启用进程、关闭进程
using ……
using ……
using System.Diagnostics;
//启用进程
void process()
{
Process p;//实例化一个Process对象
p=Process.Start(@“E:\1.txt”);//要开启的进程(或 要启用的程序),括号内为绝对路径
p.Kill();//结束进程
}
//查找进程、结束进程
void killProcess()
{
Process[] pro = Process.GetProcesses();//获取已开启的所有进程
//遍历所有查找到的进程
for (int i = 0; i < pro.Length; i++)
{
//判断此进程是否是要查找的进程
if (pro[i].ProcessName.ToString().ToLower() == "pc_task")
{
pro[i].Kill();//结束进程
}
}
}
C#process判断进程是否存在,(注意if和else的使用,如果增加了else的话就不查找了)
方法一:
using System.Diagnostics;
Process[] vProcesses = Process.GetProcesses();
foreach (Process vProcess in vProcesses)
if (vProcess.ProcessName.Equals( "iexplore ",
StringComparison.OrdinalIgnoreCase))
{
MessageBox.Show( "IE已经打开 ");
break;
}
方法二:
using System.Diagnostics;
Process[] app = Process.GetProcessesByName(“AMS”);
if (app.Length > 0)
{
MessageBox.Show("请关闭已经启动的程序后再进行尝试");
return;
}
else
{
System.Diagnostics.Process.Start("AMS.exe");
}
杀死进程:查找到对应的进程后就可以调用系统命令杀死指定名称的进程
Process[] p = Process.GetProcessesByName("AMS");
foreach (Process ps in p)
{
ps.Kill();
}
关于方法调用的使用
static void main()
{
one();
}
#region 查看制定进程是否存在
static void one()
{
console.writeline(“请输入要查看的进程名称”)
string name =console.readline().trim();
console.writeline(“查看间隔(秒):”);
int s =int.parse(console.readline().trim());
see(name,s);
}
static void see(string name,int s)
{
system.diagnostics.process[] list =system.diagnostics.process.getprocesses();
bool flag =false;
foreach (system.diagnostics.process item in list)
if(item.peocessname.toupper()==name.toupper())
{
flag =true;
}
if(flag)//非真即假
{
console.writeline(datetime.now+name+“存在”);
}
else
{
console.writeline(datetime.now+name+“不存在”);
system.threading.thread.sleep(s*1000);
see(name,s);
}
}
#endregion
调用的外部程序关闭后执行某个操作
方法一:这种方法会阻塞当前进程,直到运行的外部程序退出
System.Diagnostics.Process exep = System.Diagnostics.Process.Start(@“C:\Windows\Notepad.exe”);
exep.WaitForExit();//关键,等待外部程序退出后才能往下执行
MessageBox.Show(“Notepad.exe运行完毕”);
方法二:为外部进程添加一个事件监视器,当退出后,获取通知,这种方法时不会阻塞当前进程,你可以处理其它事情
System.Diagnostics.Process exep = new System.Diagnostics.Process();
exep.StartInfo.FileName = @“C:\Windows\Notepad.exe”;
exep.EnableRaisingEvents = true;
exep.Exited += new EventHandler(exep_Exited);
exep.Start();
//exep_Exited事件处理代码,这里外部程序退出后激活,可以执行你要的操作
void exep_Exited(object sender, EventArgs e)
{
MessageBox.Show(“Notepad.exe运行完毕”);
}