zoukankan      html  css  js  c++  java
  • c# winfrom应用程序关闭任务管理器中的进程

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Diagnostics;
     
    namespace ProcessKill
    {
        public partial class Form1 : Form
        {
            public System.Threading.Thread myThread;
            public Form1()
            {
                InitializeComponent();
                myThread = new System.Threading.Thread(new System.Threading.ThreadStart(kill_Process));//初始化线程,执行关闭进程方法kill_Process();
                myThread.Start();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                GetGetProcesses();
            }
            /// <summary>
            /// 调用此方法可查看本机当前运行的所有进程
            /// </summary>
            private void GetGetProcesses()
            {
                listView1.Items.Clear();
                Process[] list = Process.GetProcesses(".");//获取本机当前运行的所有进程
                for (int i = 0; i < list.Length; i++)//循环添加进程信息
                {
                    listView1.View = View.Details;//列的显示模式
                    ListViewItem lvi = new ListViewItem(new string[] { list[i].ProcessName, list[i].Id.ToString(), list[i].PrivateMemorySize64.ToString() });
                    listView1.Items.Add(lvi);
                }
            }
            private void listView1_SelectedIndexChanged(object sender, EventArgs e)
            {
     
            }
            /// <summary>
            /// 关闭进程
            /// </summary>
            void kill_Process()
            {
                var killlist = System.Configuration.ConfigurationManager.AppSettings["killname"].ToString().Split(',');//获取app.cong中设置的需要关闭的进程名称
                Process[] list = Process.GetProcesses(".");//获取本机当前运行的所有进程
                foreach (var item in killlist)//遍历查看进程是否存在
                {
                    foreach (Process pr in list)
                    {
                        if (item == pr.ProcessName)
                        {
                            pr.Kill();
                        }
                    }
                }
                //Application.Exit();
                System.Environment.Exit(System.Environment.ExitCode);//关闭自身进程
            }
     
            private void button2_Click(object sender, EventArgs e)
            {
                kill_Process();
                GetGetProcesses();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
            }
        }
    }
    
  • 相关阅读:
    leetcode第四题
    解决Hystrix主线程结束,子线程拿不到request
    RabbitMQ如何保证消息的顺序性+解决消息积压+设计消息队列中间件
    RabbitMQ 如何保证消息不丢失?
    redis布隆过滤器的使用
    PageHelper自定义count
    mysqlbinlog 工具分析binlog日志
    linuxubuntu常用命令
    MySQL 常用命令
    Ubuntu 16.04 安装 Apache, MySQL, PHP7
  • 原文地址:https://www.cnblogs.com/ft-Pavilion/p/5534823.html
Copyright © 2011-2022 走看看