把Process类中的一些属性和方法列出来:
属性:
- Id:获取进程ID,也就是任务管理器中PID。
- ProcessName:进程名称,也就是exe程序的文件名称排除后缀。
- HasExited:判断进程是否已经退出。
- ExitCode:退出代码,0表示正常退出,非0表示错误编号,只有通过Process.Start方式启动返回的对象的HasExited属性为true才可以访问ExitCode.
- ExitTime:退出时间,只有通过Process.Start方式启动返回的对象的HasExited属性为true才可以访问ExitTime。
- MachineName:获取进程所在的机器名,如果为点,则表示本机。
- MainModule:获取关联进程的主模块,返回类型为ProcessModule。主模块就是Main函数所在的exe文件。当访问该属性出现Win32Exception异常时,表示32bit进程访问64bit进程模块,通过VS->Properties->Build->General->Platform Target(目标平台)->将Any Cpu或x86设置为x64即可。
- MainWindowTitle:获取进程的主窗口标题。
- Modules:获取进程加载的模块,也就是exe文件和dll文件
- StartInfo:设置或获取应用程序启动时传递的参数。如果为进程为图形用户界面,可以设置StartInfo.WindowStyle属性,指定启动时如何显示窗口,如果进程不是通过Process.Start方式进行启动的,StartInfo属性将不包含启动时使用的参数,使用MainModule属性获取相关启动信息。
- StartTime:进程启动的时间,可以用来计算进程运行时间。
- Threads:获取进程中运行的线程,也就是与当前进程关联的所有线程,主线程不一定是索引0的线程.返回类型为ProcessThread集合类型。
- TotalProcessorTime:获取进程的总的处理器时间,也就是CPU总耗时,是UserProcessorTime和PrivilegedProcessorTime时间之和,并非是程序允许总时间
- UserProcessorTime:获取进程的用户处理器时间。
- PrivilegedProcessorTime:获取进程的特权处理器时间。
- EnableRegisingEvents:是否引发Exited事件,默认为false。Close:释放与进程关联的所有资源,释放资源后无法在访问Process中的属性。
方法:
- WaitForExit:等待进程退出,可以设置等待超时时间。
- WaitForInputidle:等待进程进入空闲状态,会只适用于用户图形界面。一般主窗体创建完成才会返回true。可以设置等待超时时间。
- Kill:强制终止进程,只能对本机应用程序调用该方法,是终止没有图形化界面唯一的方法。由于Kill是异步执行,调用WaitForExit方法等待程序退出或使用HasExited属性判断是否已经退出。
- CloseMainWindow:通过向进程的主窗口发送关闭消息来关闭进程,其效果与为用户在界面中单击[关闭]按钮效果相同。如果成功发送关闭消息,则返回true,如果关联进程没有主窗口或禁用了主窗口则返回false。
- Start:启动进程。
- OnExited:事件,当应用程序退出时会触发该事件,需将EnableRegisingEvents属性设置为true。
- Process.GetProcesses:获取本地计算机或远程计算机上的所有进程信息,参数machineName:远程主机的IP或计算机名。
- Process.GetProcessById:根据进程ID获取进程Process对象,machineName:远程计算机的IP或计算名
- Process.GetProcessByName:根据进程名称获取进行数组,machineName:远程计算机的IP或计算名。进程名称就是exe对应的文件名。