在.net中,Process类提供了对进程进行管理的各种方法。

一、获取进程集合的方法:

Process[] myProcesses = Process.GetProcesses();  //获取本地计算机所有进程

Process[] myProcesses = Process.GetProcesses(string ip);  //获取远程计算机所有进程

Process[] myProcesses = Process.GetProcessesByName(string name);  //根据名称获取本地计算机所有进程

Process[] myProcesses = Process.GetProcessesByName(string name, string ip);  //根据名称获取本地计算机所有进程

1. 对单个进程的一些属性和方法 (假设Process aProcess=myProcesses[0]):

1.1 aProcess.Modules 与该进程有关的一些信息 (假设ProcessModuleCollection modules = aProcess.Modules)

每一个进程都包含这个属性,但并不是每个进程的该属性都能被获取到

该集合的第一个成员等同于MainModule属性

1.1.1 MainModule 该进程的主要模块 (假设ProcessModule aModule = aProcess.MainModule)

1.1.1.1 aModule.FileName  该进程的完整路径

1.1.1.2 aModule.ModuleName 该进程模块的名称

1.1.1.3 aModule.FileVersionInfo 该模块的版本信息 (假设FileVersionInfo vInfo = aModule.FileVersionInfo)

1.1.1.3.1 FileVersionInfo.FileVersion 版本

1.1.1.3.2 FileVersionInfo.FileDescription 描述

1.1.1.3.3 FileVersionInfo.Language 语言

1.2 aProcess.StartTime  该进程的启动时间

1.3 aProcess.Id 该进程的id

1.4 aProcess.ProcessName 该进程的名称

1.5 aProcess.WorkingSet64 该进程分配的物理内存 (单位字节)

1.6 aProcess.HasExited 返回一个bool值提示是否已停止运行  (必须是对一个已经启动过的进程,如果是刚new出来还没有执行Start()方法的,会卡在那一步无法继续执行)

1.7 aPocess.WaitForInputIdle() 等待新进程完成它的初始化并等待用户输入。

二、启动与停止进程

首先创建一个Process实例,并设置相应的StartInfo属性,然后调用该实例的Start()方法,当不希望该进程运行时,调用该实例的CloseMainWindow()或者Kill()方法停止该进程

Process p = new Process();
p.StartInfo.FileName = "NotePad"; //要执行的文件名
p.StartInfo.Arguments = ""; //要传的参数
p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; //设置图形界面打开方式(最大化);
p.Start();
p.WaitForInputIdle(); //等待进程启动完成,确保后面可以获取到相关信息 Thread.Sleep(2000);
//当需要关闭时:
p.Kill(); // p.CloseMainWindow();

关于两个停止进程的方法:

如果是图形界面的,调用CloseMainWindow(),放方法与单击图形界面的关闭按钮效果相同,它可能会提示用户是否需要保存数据 (也可以调用Kill()直接退出)

如果没有图形界面,调用Kill(),该方法不会有任何提示,直接停止进程,此期间任何没有保存的数据都会丢失  (强行终止进程,该方法是异步的,因此需要调用该实例的WaitForExit()或者用HasExited属性确认已经退出)

[C#网络应用编程]1、对进程的操作的更多相关文章

  1. (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  2. Python3 与 C# 并发编程之~进程先导篇

      在线预览:http://github.lesschina.com/python/base/concurrency/1.并发编程-进程先导篇.html Python3 与 C# 并发编程之- 进程篇 ...

  3. (六) 一起学 Unix 环境高级编程 (APUE) 之 进程控制

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  4. (七) 一起学 Unix 环境高级编程(APUE) 之 进程关系 和 守护进程

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  5. Linux网络编程学习(二) ----- 进程控制(第三章)

    1.进程和程序 程序是一个可执行文件,而一个进程是一个执行中的程序实例.一个进程对应于一个程序的执行,进程是动态的,程序是静态的,多个进程可以并发执行同一个程序.比如几个用户可以同时运行一个编辑程序, ...

  6. golang语言中os包的学习与使用(文件,目录,进程的操作)

    os中一些常用函数的使用: package main; import ( "os" "fmt" "time" "strings&q ...

  7. python的reduce函数的使用方法详解以及使用案例,相加,相乘(处理一个序列,然后把序列进程合并操作)

    1.求列表的数字相加之和,还是之前的习惯,写for循环来实现 num_1=[1,2,3,4,5,6,7,8,9] a=0 for n in num_1: #a=a+n a+=n print (a) C ...

  8. Jave工具——servlet+jsp编程中mysql数据库连接及操作通用工具类

    该工具类是在JavaWeb中连接mysql所用到的通用工具类 该类用于Java+Servlet的编程中,方便数据库的操作,连接,获取其列表值.下面是这个数据库操作类的通用方法,基本上能够用于类里面只含 ...

  9. 异步编程的类型系统:promise & future & closure & observable----异步编程类型的结构和操作

    异步编程类型的结构和操作. 上下文维护. A promise represents the eventual result of an asynchronous operation. The prim ...

  10. 使用 ProcessMonitor 找到进程所操作的文件的路径

    原文:使用 ProcessMonitor 找到进程所操作的文件的路径 很多系统问题都是可以修的,不需要重装系统,但是最近我还是重装了.发现之前正在玩的一款游戏的存档没有了--因为我原有系统的数据并没有 ...

随机推荐

  1. Android开发学习之路--Android Studio项目目录结构简介

    既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最简单的Hello工程为例子,新建好工程后看如下三个工程视图: 1.Android工程 manifests ...

  2. 深入浅出Java Dom4j读取XML

    在以前自己使用的xml较少,只是了解其很强大,现在可算是在DRP中,真正的开始使用它了,以前只是简单的理解xml,xml即可扩展标记语言,简单的使用,具体是什么?怎么用?还是一直让自己期待的. 首先来 ...

  3. 我眼中的Linux设备树(一 概述)

    一 概述设备树(Device tree)是一套用来描述硬件属相的规则.ARM Linux采用设备树机制源于2011年3月份Linux创始人Linus Torvalds发的一封邮件,在这封邮件中他提倡A ...

  4. [问与答]为什么 'a' in ('abc') 是True 而 'a' in ['abc'] 是False呢?

    Why is 'a' in ('abc') True while 'a' in ['abc'] is False? 原文链接 问 在使用解释器的时候,表达式'a' in ('abc') 返回是True ...

  5. 08_Android中的SimpleAdapter的使用

     1 目的界面 2.编写Android清单文件 <?xml version="1.0" encoding="utf-8"?> <manif ...

  6. python的w+到底是什么

    python 文件处理的打开方式有很多种, os.mknod("test.txt") 创建空文件 fp = open("test.txt",w) 直接打开一个文 ...

  7. OpenCV导向滤波(引导滤波)实现(Guided Filter)代码,以及使用颜色先验算法去雾

    论文下载地址:http://research.microsoft.com/en-us/um/people/jiansun/papers/GuidedFilter_ECCV10.pdf 本文主要介绍导向 ...

  8. Java进阶(二十)解疑答惑之何时字符串才算真正为空?

    解疑答惑之何时字符串才算真正为空? 在一次编码过程中,有一个现象一直困扰着自己,经过后台的不断调试,才发现原来有时候字符串的空非空.测试代码如下: // medname可为药品名称或药品ID Stri ...

  9. 【一天一道LeetCode】#28. Implement strStr()

    一天一道LeetCode系列 (一)题目 Implement strStr(). Returns the index of the first occurrence of needle in hays ...

  10. Java进阶(十三)servlet监听器

    servlet监听器 Listener是Servlet的监听器,它可以监听客户端的请求.服务端的操作等.通过监听器,可以自动激发一些操作,比如监听在线的用户的数量.当 增加一个HttpSession时 ...