[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的SeekBar和RateBar的使用-android学习之旅(三十二)
SeekBar简介 SeekBar允许用户拖动,进行调节经常用于音量调节等方面. android:thumb设置drawable对象来表示拖动的物体. setOnSeekBarChangeListen ...
- 使用Hash函数和MAC产生伪随机数
基于Hash函数的PRNG 流程非常类似于对称密码的CTR工作模式 算法的伪码如下 m = ⌈n/outlen⌉ data = V W = the null String for i = 1 to m ...
- 【Unity Shaders】Lighting Models —— 衣服着色器
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- TSVN客户端复制文件
TSVN客户端复制文件 代码重构中,可能需要将一个大文件拆分成2个小文件,同时要保证拆分后的小文件继承原来的SVN历史记录. TSVN客户端只有Rename功能,没有Copy功能. 可进入Browse ...
- Java学习从菜鸟变大鸟之二 输入输出流(IO)
在软件开发中,数据流和数据库操作占据了一个很重要的位置,所以,熟悉操作数据流和数据库,对于每一个开发者来说都是很重要的,今天就来总结一下JavaI/O. 流 流是一个很形象的概念,当程序需要读取数据的 ...
- RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer)
什么是ProtoBuf? 一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩 ...
- Java中常用的正则表达式
常用的正则表达式 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配HTML标记的 ...
- HTML5 Web Storage 特性
原文地址: Using HTML5 Web Storage 原文日期: 2010年06月28日 翻译日期: 2013年08月12日 当下Web开发领域最火爆的词语当属 HTML5.HTML5标准的新特 ...
- Linux Shell 命令--awk
说明: awk被设计用于数据流,能够对列和行进行操作.而sed更多的是匹配,进行替换和删除.awk有很多内建的功能,比如数组,函数等.灵活性是awk的最大优势. awk的结构}{i++}END{pr ...
- 【一天一道LeetCode】#59. Spiral Matrix II
一天一道LeetCode系列 (一)题目 Given an integer n, generate a square matrix filled with elements from 1 to n2 ...