C#-定时关闭进程。根据定时关闭进程做的自动关闭游戏小软件。

2/22/2017来源:ASP.NET技巧人气:1118

   继续学习基本的C#编程知识。

   定时关闭进程,主要涉及到两个方面,一是如何找出要关闭的进程,并且关闭它,二是做到时间的控制,就是所谓的定时。

  

  对于进程的处理,我用的是C#中的PRocess类。

  该类的作用是可以用于进程的管理,所需命名空间是:System.Diagnostics;    System.Diagnostics 提供特定的类,使您能够与系统进程、事件日志和性能计数器进行交互。

  运用GetProcesses()方法,可以获得系统进程,利用Process.GetProcessesByName(proName);方法,可以依据进程名,获得你想要的进程。

  然后,再运用kill();方法,即可实现关闭进程的需求。

  代码片段如下:

  

 private void button1_Click(object sender, EventArgs e)                              //核心代码 
        {
            try
            {
                string str = "";
                Process[] processes;                                                     //新建数组,用于获取当前活动进程信息.
                processes = System.Diagnostics.Process.GetProcesses();                //Grab some basic information for each process.
                Process process = new Process();                                               //新建process类对象
                for (int i = 0; i < processes.Length - 1; i++)
                {
                    process = processes[i];                                                      //将数组的每个值 赋值到对象process
                    str = str + Convert.ToString(process.Id) + " : " +
                    process.ProcessName + "\r\n";                                                //这个str 我没有用到
                    comboBox1.Items.Add(process.ProcessName);                               //将进程名,添加到下拉菜单
                }
                comboBox1.SelectedIndex = 0;                                                 //下拉菜单显示第一项

            }
            catch
            {
                System.Windows.Forms.MessageBox.Show("不合法的进程");                   //异常显示
            }
        }


        private void timer1_Tick(object sender, EventArgs e)                                   //时间到,杀进程。
      

            if (comboBox2.Text != "")                                                  //如果 有选择进程,就开始kil
     
                try
                {
                    string proName = comboBox2.Text;                                              //获取选择的进程
                    Process[] p = Process.GetProcessesByName(proName);
                    if (p.Length > 1)
                    {                                                          //如果能获得进程名>1,则将同名进程杀干净
                        for (int i = 0; i < p.Length - 1; i++)
                        {
                            p[i].Kill();
                        }
                    }
                    else
                    {
                        p[0].Kill();                                                               //进程杀
                    }
                    timer1.Stop();                                                               //进程关闭后,停止计时器的使用
                    MessageBox.Show(comboBox2.Text + "关闭成功!快滚去干正经事吧!");                    //弹出信息
                    return;
                }
                catch
                {
                    timer1.Stop();                                                               //停止计时器的使用
                    MessageBox.Show("无法关闭此进程!");
                }
            }
            else
            {
                MessageBox.Show("请选择要终止的游戏!");
            }

        }

  对于定时,我采取的是用于timer控件的方法。

  用户在界面选择要游戏的时间,然后将该时间设置为timer时间的启动时间,时间到即调用上面说的关闭进程部分。同时用timer控件实现显示倒计时的目的。

  小程序的界面如下:

               

  除了实现基本功能之外,还复习了一些基本控件的使用,时间的处理,如倒计时的实现。

  用了记事本来保存下拉菜单中用户添加的游戏进程,因此复习了文件的读写。此外,还学习了用setting来保存用户的勾选信息。

 

   整个代码在我百度网盘,   链接:http://pan.baidu.com/s/1skCDwrN  提取密码:l2ci

   菜鸟一个,写得很粗糙,轻喷。