进程运用之后台清理桌面程序

后台清理程序

应用介绍

通过桌面程序窗口的加载,获取后台进程添加到LookupEdit中,通过两种方式选择后台进程进行清理(停用进程)。第一种:下拉框选择,第二种:输入关键字,通过关键字搜索后台进程。

效果图

打开窗口

在这里插入图片描述
打开后就会加载后台进程在这里插入图片描述

运行效果在这里插入图片描述

在这里插入图片描述

源代码

public partial class Form1 : Form
    {
        private Process[] processes;
        private bool CheckValue=false;
        public Form1()
        {            
            InitializeComponent();            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            LoadProcess();
        }
        /// <summary>
        /// 初始加载正在运行的进程,并将进程名绑定到下拉列表
        /// </summary>
        private void LoadProcess()
        {
            processes = Process.GetProcesses();
            DataTable dt = new DataTable();
            dt.Columns.Add("进程名", typeof(string));
            dt.Rows.Add("空");
            List<string> p = new List<string>();
            foreach (var process in processes)
            {
                string fileName = process.ToString()
                    .Split(new string[] { "(", ")" }, StringSplitOptions.RemoveEmptyEntries)[1];
                dt.Rows.Add(fileName);
            }
            //显示值
            lookUpEdit1.Properties.DisplayMember = "进程名";
            //取值的成员名称(或字段名)
            lookUpEdit1.Properties.ValueMember = "进程名";
            lookUpEdit1.Properties.DataSource = dt;
            默认显示第一项
            //lookUpEdit1.ItemIndex = 0;

            //提示
            lookUpEdit1.Properties.NullText = "请选择进程(运行程序)";
        }

        private void KillProcess(string fileName)
        {
            bool log=false;
            foreach (Process pro in processes)
            {
                if (pro.ProcessName.Contains(fileName))
                {
                    log = true;
                    try
                    {
                        DialogResult result = XtraMessageBox.Show($"确认退出程序:{pro.ProcessName}?", "询问",
                            MessageBoxButtons.YesNo,
                            MessageBoxIcon.Question);
                        if (result != DialogResult.Yes) return;
                        pro.Kill();
                    }
                    catch (Exception)
                    {
                        XtraMessageBox.Show("未能清理!");
                        return;
                    }
                }
            }
            if (log)
                XtraMessageBox.Show("完成");
            else
                XtraMessageBox.Show($"未找到进程:{fileName}");
            LoadProcess();
        }
        private void simpleButton1_Click_1(object sender, EventArgs e)
        {
            processes = Process.GetProcesses();
            if (lookUpEdit1.ItemIndex>0)
            {
                if (!string.IsNullOrEmpty(textEdit1.Text))
                {
                    XtraMessageBox.Show("只能选择一种方式!","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                    return;
                }
                KillProcess(lookUpEdit1.EditValue.ToString());
            }
            else if (!string.IsNullOrEmpty(textEdit1.Text))
            {
                if (lookUpEdit1.ItemIndex > 0)
                {
                    XtraMessageBox.Show("只能选择一种方式!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                KillProcess(textEdit1.Text);
            }
        }
    }

最后,大家有什么意见或者建议都可以在评论留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值