[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 找到进程所操作的文件的路径 很多系统问题都是可以修的,不需要重装系统,但是最近我还是重装了.发现之前正在玩的一款游戏的存档没有了--因为我原有系统的数据并没有 ...
随机推荐
- JAVA代码规范笔记(下)
声明 17.推荐一行一个声明,因为这样有利于写注释.换句话说,下面的声明方法中, int level; // indentation level int size; // size of table ...
- ROS(indigo)swarm_robot 群机器人示例Gazebo
ROS(indigo)swarm_robot 群机器人示例Gazebo 参考网址:https://github.com/yangliu28/swarm_robot_ros_sim 安装提示:catki ...
- JSP标签JSTL(3)--迭代操作
简单点说,<c:forEach>标签的作用就是迭代输出标签内部的内容.它既可以进行固定次数的迭代输出,也可以依据集合中对象的个数来决定迭代的次数. <!--语法使用如下--> ...
- iOS中 MediaPlayer framework实现视频播放 韩俊强的博客
iOS开发中播放音乐可以使用MPMusicPlayerController类来实现,播放视频可以使用MPMoviePlayerController和MPMoviePlayerViewControlle ...
- ROS(indigo)_pr2_simulator仿真(gazebo)示例
ROS(indigo)_pr2_simulator仿真(gazebo)示例 1 开启pr2仿真 ~$ roslaunch gazebo_ros empty_world.launch ~$ roslau ...
- 【一天一道LeetCode】#64. Minimum Path Sum.md
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- Html5学习之旅-html5的留言记事本开发(17)
web留言记事本的开发 !!!!!代码如下 index.html的代码 <!DOCTYPE html> <html lang="en"> <head& ...
- linux的string操作(字符串截取,长度计算)
按指定的字符串截取 1.第一种方法: ${varible##*string} 从左向右截取最后一个string后的字符串 ${varible#*string}从左向右截取第一个string后的字符串 ...
- Win 32 编程之按钮消息响应(代码小错误修复)
最近不想用MFC写东西了,有没有安装Qt和其他图形化开发环境,只能捣鼓API了.于是乎,就有了以下的学习-- 首先,老套的创建个Windows窗口,由于自己有点小懒,就直接用Hello Word的源码 ...
- AngularJS进阶(四)ANGULAR.JS实现下拉菜单单选
ANGULAR.JS: NG-SELECT AND NG-OPTIONS PS:其实看英文文档比看中文文档更容易理解,前提是你的英语基础还可以.英文文档对于知识点讲述简明扼要,通俗易懂,而有些中文文档 ...