浅谈C#中Process类的使用详解

Process类的作用是对系统进程进行管理,我们使用Process类中的一些方法结合Winform开发个简单的进程管理器:

在使用Process类的时候,先导入命名空间System.Diagnostics。
使用Winform画出如上的界面,数据显示使用的是Listview。
在窗体的Load事件中写出如下代码:


代码如下:

private void Form1_Load(object sender, EventArgs e)  
 {

listView1.FullRowSelect = true;

GetProcess();  
 }

其中GetProcess方法如下:


代码如下:

private void GetProcess()
 {
            listView1.Items.Clear();

Process[] proList = Process.GetProcesses(".");//获得本机的进程

lblNum.Text = proList.Length.ToString(); //当前进程数量
            foreach (Process p in proList)
            {
                ListViewItem lvi = new ListViewItem();

lvi.Text = p.ProcessName;

lvi.SubItems.AddRange(new string[] { p.Id.ToString(),p.PrivateMemorySize64.ToString() }); //进程ID  使用内存

listView1.Items.Add(lvi);
            }
 }

如果想终止一个进程,先选中一个进程,点击上面的进程按钮:
click事件代码如下:


代码如下:

private void button2_Click(object sender, EventArgs e)
 {
             if (listView1.SelectedItems.Count > 0)
             {
                 try
                 {
                     string proName = listView1.SelectedItems[0].Text;
                     Process[] p = Process.GetProcessesByName(proName); //根据进程命获得指定的进程
                     p[0].Kill(); //杀死该进程
                     MessageBox.Show("进程关闭成功!");
                     GetProcess();
                 }
                 catch
                 {
                     MessageBox.Show("无法关闭此进程!");
                 }

}
             else
             {
                 MessageBox.Show("请选择要终止的进程!");
             }
 }

当然我们可以调用Process的start方法来开启一个进程:
启动按钮的事件如下:


代码如下:

private void button1_Click(object sender, EventArgs e)
 {
     if (textBox1.Text != string.Empty)
     {
         Process.Start(textBox1.Text); //启动一个进程
     }
     else
     {
         MessageBox.Show("请输入启动项");
         textBox1.Focus();
     }

}

运行程序,开始使用自己的进程管理器吧~~~~~

(0)

相关推荐

  • C#启动外部程序的几种常用方法汇总

    本文汇总了C#启动外部程序的几种常用方法,非常具有实用价值,主要包括如下几种方法: 1. 启动外部程序,不等待其退出. 2. 启动外部程序,等待其退出. 3. 启动外部程序,无限等待其退出. 4. 启动外部程序,通过事件监视其退出. 实现代码如下: // using System.Diagnostics; private string appName = "calc.exe"; /// <summary> /// 1. 启动外部程序,不等待其退出 /// </summ

  • c#启动EXE文件的方法实例

    1.调用系统dll使用其提供的方法. 引用的dll, 复制代码 代码如下: [DllImport("kernel32.dll")]    public static extern int WinExec(string exeName, int operType); 调用,WinExec(@"路径\exe的文件名", 参数); operType参数如下 复制代码 代码如下: 0: 隐藏, 并且任务栏也没有最小化图标  1: 用最近的大小和位置显示, 激活  2: 最小

  • C#使用Process类调用外部exe程序

    在编写程序时经常会使用到调用可执行程序的情况,本文将简单介绍C#调用exe的方法.在C#中,通过Process类来进行进程操作. Process类在System.Diagnostics包中. 示例一 复制代码 代码如下: using System.Diagnostics; Process p = Process.Start("notepad.exe"); p.WaitForExit();//关键,等待外部程序退出后才能往下执行 通过上述代码可以调用记事本程序,注意如果不是调用系统程序,

  • 简单掌握Windows中C#启动外部程序进程的方法

    许多用户在程序开发过程中需要使用C#启动一个外部程序(进程),在使用完毕该外部程序后,又希望能将其关闭.我们特在此对C#启动和关闭外部进程的方法进行一个简单的介绍. C#启动外部程序(进程)有两种方法:一种是直接使用C#提供的Process类,利用类的函数操作来直接启动外部程序:另一种方法是使用传统的Win32 API函数CreateProcess来实现外部进程的启动. 使用C#提供的Process类来启动外部程序方法比较简单,例举代码如下: using System.Diagnostics;

  • C#使用Process类调用外部程序分解

    在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程. 一.启动进程实例 复制代码 代码如下: Process myProcess = new Process();   try  {       myProcess.StartInfo.UseShellExecute = false;       myProcess.StartInfo.FileName = "test.exe";    

  • C#调用执行外部程序的实现方法

    本文实例讲述了C#调用执行外部程序的实现方法.分享给大家供大家参考.具体分析如下: 这里以调用notepad为例演示C#调用执行外部程序的方法. class Test { static void Main (string [] args) { System.Diagnostics.Process.Start ("notepad.exe"); } } 希望本文所述对大家的C#程序设计有所帮助.

  • C#实现软件监控外部程序运行状态的方法

    本文实例讲述了C#实现软件监控外部程序运行状态的方法.分享给大家供大家参考.具体方法如下: 需要外挂一个程序,用于监控另一个程序运行状态,一旦检测到另一程序关闭,就触发一个事件做其他处理. 引用的类 复制代码 代码如下: using System.Diagnostics;//引入Process 类 声明 复制代码 代码如下: private Process[] MyProcesses; 主要处理部分,该段代码可放在定时器中循环检测监控的程序是否启动 复制代码 代码如下: MyProcesses

  • 解析C#中用Process类杀死进程,执行命令的深入分析

    c#之process类相关整理一.根据进程名获取进程的用户名?需要添加对 System.Management.dll 的引用 复制代码 代码如下: using System.Diagnostics;using System.Management;static void Main(string[] args){foreach (Process p in Process.GetProcesses()){Console.Write(p.ProcessName);Console.Write("----&

  • c#使用process.start启动程序报错解决方法

    出错信息: 复制代码 代码如下: Unknown error (0xffffffff)at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)at System.Diagnostics.Process.Start()at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)at System.Diagnostics.Proc

  • 浅谈C#中Process类的使用详解

    Process类的作用是对系统进程进行管理,我们使用Process类中的一些方法结合Winform开发个简单的进程管理器: 在使用Process类的时候,先导入命名空间System.Diagnostics.使用Winform画出如上的界面,数据显示使用的是Listview.在窗体的Load事件中写出如下代码: 复制代码 代码如下: private void Form1_Load(object sender, EventArgs e)    { listView1.FullRowSelect =

  • 浅谈java中静态方法的重写问题详解

    首先来看看以下程序将会打印出什么: 复制代码 代码如下: class Dog {    public static void bark() {        System.out.print("woof ");    }} class Basenji extends Dog {    public static void bark() { }} public class Bark {    public static void main(String args[]) {       

  • 浅谈java中math类中三种取整函数的区别

    math类中三大取整函数 1.ceil 2.floor 3.round 其实三种取整函数挺简单的.只要记住三个函数名翻译过来的汉语便能轻松理解三大函数,下面一一介绍 1.ceil,意思是天花板,java中叫做向上取整,大于等于该数字的最接近的整数 例: math.ceil(13.2)=14 math.ceil(-13.2)=-13 2.floor,意思是地板,java中叫做向下取整,小于等于该数字的最接近的整数 例: math.floor(13.2)=13 math.floor(-13.2)=-

  • 浅谈js中StringBuffer类的实现方法及使用

    如下所示: <strong>JAVA中有一个StringBuffer类,js中却没有下面来自己实现一个简单的js的StringBuffer类.</strong> //创建一个StringBuffer类 ,此类有两个方法:一个是append方法一个是toString方法 function StringBuffer() { this.__strings__ = []; }; StringBuffer.prototype.append = function(str) { this.__s

  • 浅谈C++中派生类对象的内存布局

    主要从三个方面来讲: 1 单一继承 2 多重继承 3 虚拟继承 1 单一继承 (1)派生类完全拥有基类的内存布局,并保证其完整性. 派生类可以看作是完整的基类的Object再加上派生类自己的Object.如果基类中没有虚成员函数,那么派生类与具有相同功能的非派生类将不带来任何性能上的差异.另外,一定要保证基类的完整性.实际内存布局由编译器自己决定,VS里,把虚指针放在最前边,接着是基类的Object,最后是派生类自己的object.举个栗子: class A { int b; char c; }

  • 浅谈Java中对类的主动引用和被动引用

    本文研究的主要是Java中类的主动引用和被动引用,具体介绍如下. 主动引用,这里介绍的是主动引用的五种场景 1.遇到new,getstatic,putstatic,invokestatic这4条字节码指令时,类如果没初始化就会被初始化,创建对象,读取或设置静态字段,调用静态方法. 2.反射 3.子类初始化前会先初始化父类 4.包含main方法的类,虚拟机启动时会先初始化该类 5.使用jdk的动态语言支持时(不明) 被动引用: class SuperClass{ static{ syso("sup

  • 浅谈java中BigDecimal类的简单用法

    一.BigDecimal概述 ​ Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理.一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度.所以开发中,如果我们需要精确计算的结果,则必须使用

  • 浅谈Java中Properties类的详细使用

    目录 一.Properties 类 二.打印JVM参数 三.打印自定义.properties文件中的值 3.1.list输出到控制台用绝对路径加载 3.2.propertyNames输出getClass()加载 3.3.stringPropertyNames输出getClassLoader加载(推荐) 四.获取值getProperties 五.写入到Properties文件 5.1.普通写入,中文时乱码 5.2.解决乱码写入的问题 六.加载和导出到xml配置文件 6.1.导出到.xml配置文件s

  • 浅谈onTouch先执行,还是onClick执行(详解)

    有一个Button 按钮,要想为该按钮设置onClick事件和OnTouch事件 mTestButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d(TAG, "onClick execute"); } }); mTestButton.setOnTouchListener(new View.OnTouchListener() { @Ove

  • 浅谈java Iterator.remove()方法的用法(详解)

    实例如下: @Test public void tt(){ List<String> list = new ArrayList<String>(); list.add( "0" ); list.add( "1" ); list.add( "2" ); list.add( "3" ); list.add( "4" ); list.add( "5" ); list.a

随机推荐