81.C# Process组件

摘要


负责启动和停止本机进程,获取或设置进程优先级,确定进程是否响应,是否已经退出,以及获取系统正在运行的所有进行列表和各进程资源占用情况。也可以查询远城计算机上进程相关信息,包括进程内的线程集合、加载模块(.dll文件和.exe文件)和性能信息(如当前进程使用的内存量)

正文


属性

BasePriority

获取关联进程的基本优先级。

EnableRaisingEvents

获取或设置在进程终止时是否应引发 Exited 事件。

Events

获取附加到此 Component 的事件处理程序的列表。

(继承自 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();
    }
}
展开阅读全文

页面更新:2024-03-13

标签:句柄   优先级   存量   线程   字节   处理器   组件   进程   分配   单位   时间

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top