C#进程管理器

ContractedBlock.gif ExpandedBlockStart.gif Code
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;
using System.Threading;
namespace Diagnostics
{
    
public partial class MultiProcess : Form
    {
        
public MultiProcess()
        {
            InitializeComponent();
        }

        
private void buttonStart_Click(object sender, EventArgs e)
        {
            
//启动记事本
            process.StartInfo.FileName = "Notepad.exe";
            process.Start();
        }

        
private void buttonStop_Click(object sender, EventArgs e)
        {
            Process[] myProcess;
            
//创建新的Process组件数组,并将他们与指定的进程名称的所有进程资源相关联
            myProcess = Process.GetProcessesByName("Notepad");
            
foreach(Process instance in myProcess)
            {
                
//设置终止当前线程前等待的毫秒数
                instance.WaitForExit(100);
                instance.CloseMainWindow();
            }
        }
        
//获取所有进程
        private void buttonView_Click(object sender, EventArgs e)
        {
            listViewProcess.Items.Clear();
            Process[] allProcess;
            
//创建Process类型的数组,将他们与系统内所有进程相关联
            try
            {
                allProcess 
= Process.GetProcesses();

                
foreach (Process p in allProcess)
                {
                    ListViewItem item 
= new ListViewItem();
                    item.SubItems[
0].Text = p.ProcessName.ToString();
                    item.SubItems.Add(p.StartTime.ToShortTimeString());
                    item.SubItems.Add(p.Id.ToString());
                    item.SubItems.Add(p.Threads.Count.ToString());
                    listViewProcess.Items.Add(item);       
                }
            }
            
catch (System.Exception ee)
            {
                
string a = ee.ToString();
               
            }
            
        }
        
//结束进程
        private void buttonKill_Click(object sender, EventArgs e)
        {
            ListView.SelectedListViewItemCollection selectItem 
= listViewProcess.SelectedItems;
            
foreach (ListViewItem item in selectItem)
            {
                Process KillProcess 
= Process.GetProcessById(Convert.ToInt32(item.SubItems[2].Text));
                
try
                {
                    KillProcess.Kill();
                    MessageBox.Show(
"结束进程成功");
                    buttonView_Click(sender,e);
                }
                
catch (System.Exception ee)
                {
                    
string strInfo = ee.ToString();
                    MessageBox.Show(
"结束进程失败");
                }
                
            }
        }
    }
}
工程文件
/Files/eping/Diagnostics.rar

转载于:https://www.cnblogs.com/eping/archive/2009/09/15/1566880.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值