欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解C#打开和关闭可执行文件

程序员文章站 2022-06-25 08:57:43
一、打开程序 先介绍system.diagnostics.process类:用来启动和停止进程的。 process pr = new process()...

一、打开程序

先介绍system.diagnostics.process类:用来启动和停止进程的。

process pr = new process();//声明一个进程类对象
   pr.startinfo.filename = "e://program files//tencent//qq//qq.exe";//指定运行的程序,我的qq的物理路径。
   pr.start();//运行qq

还可以简单点:process的静态方法start();

process.start(string filename);(+4重载) //filiname 是你要运行的程序名,是物理路径
process.start(string filename,string arguments)//filiname 是你要运行的程序名,是物理路径;arguments启动改程序时传递的命令行参数

二、以刚才的qq为例,进行解释
1、

process[] proc = process.getprocessesbyname("qq");//创建一个进程数组,把与此进程相关的资源关联。
   for (int i = 0; i < proc.length; i++)
   {
    proc[i].kill(); //逐个结束进程.
   }

2、

process[] p_arry = process.getprocesses();//得到系统所有进程
   for (int i = 0; i < p_arry.length; i++)//遍历每个进程
   {
    if (p_arry[i].processname == "qq")//发现有名为qq的进程
    {     
     p_arry[i].kill();//就结束它。
     return;
    }
   }
   system.gc.collect();//垃圾回收

这个方法是有点耗资源,还有没有if判断就全部kill了,可以尝试进行使用。
三、程序

using system;
class test
{
static void main()
{

//声明一个程序信息类
system.diagnostics.processstartinfo info = new system.diagnostics.processstartinfo();

//设置外部程序名
info.filename = "notepad.exe";

//设置外部程序的启动参数(命令行参数)为test.txt
info.arguments = "test.txt";

//设置外部程序工作目录为 c:\
info.workingdirectory = "c:\\";

//声明一个程序类
system.diagnostics.process proc ;

try
{
//
//启动外部程序
//
proc = system.diagnostics.process.start(info);
}
catch(system.componentmodel.win32exception e)
{
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#实现打开和关闭可执行文件的方法,希望对大家的学习有所帮助。