在.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属性确认已经退出)

最新文章

  1. mysql的基本命令行操作
  2. CentOs中yum安装LAMP+PHPMYADMIN
  3. Android开发实践:编译VLC-for-android
  4. Recommending branded products from social media -RecSys 2013-20160422
  5. maven之clean、install命令
  6. paip.c++ 常用类库attilax总结
  7. js文字向上滚动代码
  8. Tomcat相关目录及配置文件总结
  9. python WEB接口自动化测试之requests库详解
  10. String 类的实现(5)String常用函数
  11. JS——函数
  12. 2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
  13. 安装cmake 和 opencv 4.0.0
  14. BZOJ.5338.[TJOI2018]xor(可持久化Trie)
  15. python3 cookie
  16. SQL Server--存在则更新问题
  17. Ajax做列表无限加载和Ajax做二级下拉选项
  18. printf命令详解
  19. 网页中嵌入swf文件的几种方法
  20. Java_正则表达式&时间日期

热门文章

  1. 新手学python(2):C语言调用完成数据库操作
  2. Android必知必会-Handler可能引起的内存泄露
  3. XML解析之SAX解析过程代码详解
  4. 【Unity Shaders】Reflecting Your World —— 在Unity3D中创建一个简单的动态Cubemap系统
  5. iOS模仿京东商城中的选择地区样式
  6. javascript之DOM文档对象模型编程的引入
  7. 关于Eclipse创建Android项目时,会多出一个appcompat_v7的问题
  8. Dynamics CRM 同一实体多个Form显示不同的Ribbon按钮
  9. android升级后错误:Unable to execute dex: java.nio.BufferOverflowException.Check
  10. 《java入门第一季》之类小案例(模拟用户登录)