C# 實現自動化打開和關閉可執行文件(或 關閉中止與系統交互的可執行文件)

 string file =Application.StartupPath+@"\WinFrm_Main.exe";//運行程序位置
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
          //  StopExe(file);
            timer1.Enabled = false; 
          
        }  
        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        } 
        void StopExe(string file)
        {
            Process pr = new Process();//聲明一個進程類對象
            pr.StartInfo.FileName = file;//指定運行的程序,
            pr.Start();//運行
        }
        void StartExt()
        {
            //Process[] p_arry = Process.GetProcesses();//獲得系統全部進程
            //for (int i = 0; i < p_arry.Length; i++)//遍歷每一個進程
            //{
            //    if (p_arry[i].ProcessName == "WinFrm_Main" && !p_arry[i].Responding)//發現有名爲QQ的進程
            //    {
            //        p_arry[i].Kill();//就結束它。
            //        return;
            //    }
            //}

            Process[] proc = Process.GetProcessesByName("WinFrm_Main");//建立一個進程數組,把與此進程相關的資源關聯。
            for (int i = 0; i < proc.Length; i++)
            {
                proc[i].Kill();  //逐個結束進程.
            }

            System.GC.Collect();//垃圾回收
          
             
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            Process[] proc = Process.GetProcessesByName("WinFrm_Main");//建立一個進程數組,把與此進程相關的資源關聯。
            for (int i = 0; i < proc.Length; i++)
            {
                if (proc[i].ProcessName == "WinFrm_Main" && !proc[i].Responding)//發現有名爲WinFrm_Main的進程 或 WinFrm_Main和電腦中止交互 就退出
                {
                    proc[i].Kill();//就結束它。 
                    //StopExe(file);
                }
            }
            if (proc.Length==0)//啓動
                StopExe(file);
            System.GC.Collect();//垃圾回收

        }

 下載地址:http://download.csdn.net/detail/amy1314250/9849891數組

相關文章
相關標籤/搜索