81.C# Process组件
摘要
负责启动和停止本机进程,获取或设置进程优先级,确定进程是否响应,是否已经退出,以及获取系统正在运行的所有进行列表和各进程资源占用情况。也可以查询远城计算机上进程相关信息,包括进程内的线程集合、加载模块(.dll文件和.exe文件)和性能信息(如当前进程使用的内存量)
正文
属性
BasePriority  | 获取关联进程的基本优先级。  | 
EnableRaisingEvents  | 获取或设置在进程终止时是否应引发 Exited 事件。  | 
Events  | 获取附加到此 Component 的事件处理程序的列表。<br><br>(继承自 Component)  | 
ExitCode  | 获取关联进程终止时指定的值。  | 
ExitTime  | 获取关联进程退出的时间。  | 
Handle  | 获取关联进程的本机句柄。  | 
HandleCount  | 获取由进程打开的句柄数。  | 
HasExited  | 获取指示关联进程是否已终止的值。  | 
Id  | 获取关联进程的唯一标识符。  | 
MachineName  | 获取关联进程正在其上运行的计算机的名称。  | 
MainModule  | 获取关联进程的主模块。  | 
MainWindowHandle  | 获取关联进程主窗口的窗口句柄。  | 
MainWindowTitle  | 获取进程的主窗口标题。  | 
MaxWorkingSet  | 获取或设置关联进程允许的最大工作集大小(以字节为单位)。  | 
MinWorkingSet  | 获取或设置关联进程允许的最小工作集大小(以字节为单位)。  | 
Modules  | 获取已由关联进程加载的模块。  | 
NonpagedSystemMemorySize64  | 获取为关联的进程分配的非分页系统内存量(以字节为单位)。  | 
PagedMemorySize64  | 获取为关联的进程分配的分页内存量(以字节为单位)。  | 
PagedSystemMemorySize64  | 获取为关联进程分配的可分页系统内存量(以字节为单位)。  | 
PeakPagedMemorySize64  | 获取关联的进程使用的虚拟内存分页文件中的最大内存量(以字节为单位)。  | 
PeakVirtualMemorySize64  | 获取关联进程使用的最大虚拟内存量(以字节为单位)。  | 
PeakWorkingSet64  | 获取关联进程使用的最大物理内存量(以字节为单位)。  | 
PriorityBoostEnabled  | 获取或设置一个值,该值指示主窗口拥有焦点时是否应由操作系统暂时提升关联进程优先级。  | 
PriorityClass  | 获取或设置关联进程的总体优先级类别。  | 
PrivateMemorySize64  | 获取为关联的进程分配的专用内存量(以字节为单位)。  | 
PrivilegedProcessorTime  | 获取此进程的特权处理器时间。  | 
ProcessName  | 获取该进程的名称。  | 
ProcessorAffinity  | 获取或设置一些处理器,此进程中的线程可以按计划在这些处理器上运行。  | 
Responding  | 获取指示进程的用户界面当前是否响应的值。  | 
SafeHandle  | 获取此进程的本机句柄。  | 
SessionId  | 获取关联进程的终端服务会话标识符。  | 
StandardError  | 获取用于读取应用程序错误输出的流。  | 
StandardInput  | 获取用于写入应用程序输入的流。  | 
StandardOutput  | 获取用于读取应用程序文本输出的流。  | 
StartInfo  | 获取或设置要传递给 Start() 的 Process 方法的属性。  | 
StartTime  | 获取关联进程启动的时间。  | 
SynchronizingObject  | 获取或设置用于封送由于进程退出事件而发出的事件处理程序调用的对象。  | 
Threads  | 获取在关联进程中运行的一组线程。  | 
TotalProcessorTime  | 获取此进程的总的处理器时间。  | 
UserProcessorTime  | 获取此进程的用户处理器时间。  | 
VirtualMemorySize64  | 获取为关联进程分配的虚拟内存量(以字节为单位)。  | 
WorkingSet64  | 获取为关联的进程分配的物理内存量(以字节为单位)。  | 
一个例子
private void btnGet_Click(object sender, EventArgs e)
{
    Process process = new Process();//实例
    Process.Start("notepad.exe");//调用某一个应用
}再来一个例子
private void btnGet_Click(object sender, EventArgs e)
{
    Process[] proList = Process.GetProcesses(".");//获得本机的进程
    lstProcess.DataSource= proList;
    lstProcess.DisplayMember = "ProcessName";
}通过Process判断检查重复启动
private void Form1_Load(object sender, EventArgs e)
{
    Process[] ps = Process.GetProcesses();
    var process = ps.Where(x => x.ProcessName == Process.GetCurrentProcess().ProcessName);
    if (process.Count() > 1)
    {
        MessageBox.Show("程序已经启动,请勿重复启动");
        this.Close();
    }
}                    相关文章
- Spring Boot中对接Twilio以实现发送验证码和验证短信码
 - Spring Boot 3.5:这次更新让你连配置都不用写了,惊不惊喜?
 - Spring Boot+Pinot实战:毫秒级实时竞价系统构建
 - SpringBoot敏感配置项加密与解密实战
 - SpringBoot 注解最全详解,建议收藏!
 - Spring Boot 常用注解大全:从入门到进阶
 - SpringBoot启动之谜:@SpringBootApplication如何让配置化繁为简
 - Springboot集成Kafka原理_spring集成kafka的原理
 - Spring Boot中@Data注解的深度解析与实战应用
 - 大佬用1000字就把SpringBoot的配置文件讲的明明白白!
 
