详解C#打开和关闭可执行文件
一、打开程序
先介绍System.Diagnostics.Process类:用来启动和停止进程的。
Processpr=newProcess();//声明一个进程类对象 pr.StartInfo.FileName="E://ProgramFiles//Tencent//QQ//QQ.exe";//指定运行的程序,我的QQ的物理路径。 pr.Start();//运行QQ
还可以简单点:Process的静态方法Start();
Process.Start(StringfileName);(+4重载)//filiName是你要运行的程序名,是物理路径 Process.Start(StringfileName,stringarguments)//filiName是你要运行的程序名,是物理路径;arguments启动改程序时传递的命令行参数
二、以刚才的QQ为例,进行解释
1、
Process[]proc=Process.GetProcessesByName("QQ");//创建一个进程数组,把与此进程相关的资源关联。
for(inti=0;i<proc.Length;i++)
{
proc[i].Kill();//逐个结束进程.
}
2、
Process[]p_arry=Process.GetProcesses();//得到系统所有进程
for(inti=0;i<p_arry.Length;i++)//遍历每个进程
{
if(p_arry[i].ProcessName=="QQ")//发现有名为QQ的进程
{
p_arry[i].Kill();//就结束它。
return;
}
}
System.GC.Collect();//垃圾回收
这个方法是有点耗资源,还有没有if判断就全部kill了,可以尝试进行使用。
三、程序
usingSystem;
classtest
{
staticvoidMain()
{
//声明一个程序信息类
System.Diagnostics.ProcessStartInfoInfo=newSystem.Diagnostics.ProcessStartInfo();
//设置外部程序名
Info.FileName="notepad.exe";
//设置外部程序的启动参数(命令行参数)为test.txt
Info.Arguments="test.txt";
//设置外部程序工作目录为C:\
Info.WorkingDirectory="C:\\";
//声明一个程序类
System.Diagnostics.ProcessProc;
try
{
//
//启动外部程序
//
Proc=System.Diagnostics.Process.Start(Info);
}
catch(System.ComponentModel.Win32Exceptione)
{
Console.WriteLine("系统找不到指定的程序文件。\r{0}",e);
return;
}
//打印出外部程序的开始执行时间
Console.WriteLine("外部程序的开始执行时间:{0}",Proc.StartTime);
//等待3秒钟
Proc.WaitForExit(3000);
//如果这个外部程序没有结束运行则对其强行终止
if(Proc.HasExited==false)
{
Console.WriteLine("由主程序强行终止外部程序的运行!");
Proc.Kill();
}
else
{
Console.WriteLine("由外部程序正常退出!");
}
Console.WriteLine("外部程序的结束运行时间:{0}",Proc.ExitTime);
Console.WriteLine("外部程序在结束运行时的返回值:{0}",Proc.ExitCode);
}
}
以打开和关闭QQ应用程序为例进行学习,帮助大家更好的学习C#实现打开和关闭可执行文件的方法,希望对大家的学习有所帮助。