[C#网络应用编程]1、对进程的操作
在.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、对进程的操作的更多相关文章
- (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- Python3 与 C# 并发编程之~进程先导篇
在线预览:http://github.lesschina.com/python/base/concurrency/1.并发编程-进程先导篇.html Python3 与 C# 并发编程之- 进程篇 ...
- (六) 一起学 Unix 环境高级编程 (APUE) 之 进程控制
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (七) 一起学 Unix 环境高级编程(APUE) 之 进程关系 和 守护进程
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- Linux网络编程学习(二) ----- 进程控制(第三章)
1.进程和程序 程序是一个可执行文件,而一个进程是一个执行中的程序实例.一个进程对应于一个程序的执行,进程是动态的,程序是静态的,多个进程可以并发执行同一个程序.比如几个用户可以同时运行一个编辑程序, ...
- golang语言中os包的学习与使用(文件,目录,进程的操作)
os中一些常用函数的使用: package main; import ( "os" "fmt" "time" "strings&q ...
- 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 ...
- Jave工具——servlet+jsp编程中mysql数据库连接及操作通用工具类
该工具类是在JavaWeb中连接mysql所用到的通用工具类 该类用于Java+Servlet的编程中,方便数据库的操作,连接,获取其列表值.下面是这个数据库操作类的通用方法,基本上能够用于类里面只含 ...
- 异步编程的类型系统:promise & future & closure & observable----异步编程类型的结构和操作
异步编程类型的结构和操作. 上下文维护. A promise represents the eventual result of an asynchronous operation. The prim ...
- 使用 ProcessMonitor 找到进程所操作的文件的路径
原文:使用 ProcessMonitor 找到进程所操作的文件的路径 很多系统问题都是可以修的,不需要重装系统,但是最近我还是重装了.发现之前正在玩的一款游戏的存档没有了--因为我原有系统的数据并没有 ...
随机推荐
- Android开发学习之路--Android Studio项目目录结构简介
既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最简单的Hello工程为例子,新建好工程后看如下三个工程视图: 1.Android工程 manifests ...
- 深入浅出Java Dom4j读取XML
在以前自己使用的xml较少,只是了解其很强大,现在可算是在DRP中,真正的开始使用它了,以前只是简单的理解xml,xml即可扩展标记语言,简单的使用,具体是什么?怎么用?还是一直让自己期待的. 首先来 ...
- 我眼中的Linux设备树(一 概述)
一 概述设备树(Device tree)是一套用来描述硬件属相的规则.ARM Linux采用设备树机制源于2011年3月份Linux创始人Linus Torvalds发的一封邮件,在这封邮件中他提倡A ...
- [问与答]为什么 'a' in ('abc') 是True 而 'a' in ['abc'] 是False呢?
Why is 'a' in ('abc') True while 'a' in ['abc'] is False? 原文链接 问 在使用解释器的时候,表达式'a' in ('abc') 返回是True ...
- 08_Android中的SimpleAdapter的使用
1 目的界面 2.编写Android清单文件 <?xml version="1.0" encoding="utf-8"?> <manif ...
- python的w+到底是什么
python 文件处理的打开方式有很多种, os.mknod("test.txt") 创建空文件 fp = open("test.txt",w) 直接打开一个文 ...
- OpenCV导向滤波(引导滤波)实现(Guided Filter)代码,以及使用颜色先验算法去雾
论文下载地址:http://research.microsoft.com/en-us/um/people/jiansun/papers/GuidedFilter_ECCV10.pdf 本文主要介绍导向 ...
- Java进阶(二十)解疑答惑之何时字符串才算真正为空?
解疑答惑之何时字符串才算真正为空? 在一次编码过程中,有一个现象一直困扰着自己,经过后台的不断调试,才发现原来有时候字符串的空非空.测试代码如下: // medname可为药品名称或药品ID Stri ...
- 【一天一道LeetCode】#28. Implement strStr()
一天一道LeetCode系列 (一)题目 Implement strStr(). Returns the index of the first occurrence of needle in hays ...
- Java进阶(十三)servlet监听器
servlet监听器 Listener是Servlet的监听器,它可以监听客户端的请求.服务端的操作等.通过监听器,可以自动激发一些操作,比如监听在线的用户的数量.当 增加一个HttpSession时 ...