想实现这样的效果:就是每次在打开进程"a.exe"之前,系统都先检查一下该进程是否存在,如果存在,就先杀死或关闭该进程,然后再打开.不然我的窗体每调用一次就会出现一次.我的打开进程的代码是: System.Diagnostics.Process.Start("a.exe");                杀死进程的代码是:                Process[] eprocesses = Process.GetProcessesByName("a.exe");
                    try
                    {
                        for (int i = 0; i < eprocesses.Length; i++)
                            eprocesses[i].Kill();//终止进程   
                    }
                    catch
                    {
                    }为什么没作用呢,进程还一直存在.
谢谢.
                    
        

解决方案 »

  1.   


    System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcesses();
    for (int i = 0; i < process.Length; i++)
    {
    if (process[i].ProcessName == "a.exe")
    process[i].Kill();
    }
      

  2.   

    Process[] eprocesses = Process.GetProcessesByName("[color=#FF0000]a[/color");   //不用a.exe
      

  3.   

    谢谢.
    我的启动进程的代码是:   System.Diagnostics.Process.Start("D:\\My Documents\\Visual Studio 2005\\Projects\\A\\A\\bin\\Release\\A.exe"); 
    那杀死应该怎么杀呢,只写个"A"进程马那瓜子,还是("D:\\My Documents\\Visual Studio 2005\\Projects\\A\\A\\bin\\Release\\A.exe")这个名字呢
      

  4.   

    谢谢大家的建议,现在进程杀死了(进程名是不带后缀实现,呵呵),已经实现了目标,但是还有一个小问题,就是我的程序每次启动进程的时候,都会最小化托盘的.
    现在进程虽然杀死了,但是每调用一次程序,那个小图标(是通过一个NotifyIcon图标)仍会出现在计算机右下角一次,只有鼠标点了一下以后,它才消失.这个怎么让它随着进程被杀死自动消失啊
      

  5.   

    Kill 方法将异步执行。在调用 Kill 方法后,请调用 WaitForExit 方法等待进程退出,或者检查 HasExited 属性以确定进程是否已经退出。
      

  6.   

    激活可以使用API,得先找到主窗口句柄