微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检测进程已经在使用C#.net的窗口中运行

如何检测一个进程是否已经在Windows任务pipe理器下运行? 我想获得内存和cpu使用率以及。

等待进程完成,然后显示消息(C#)

在Crystal Reports中导致“页眉和页面页脚太大”页面错误的原因是什么?

在C#中打开一个导出的registry

使用Windows服务和c#检测磁盘标签名称中的更改

检查“服务器”服务是否正在运行 – 多语言C#.Net

你有没有看过System.Diagnostics.Process类。

简单的例子…

bool processIsRunning(string process) { return (System.Diagnostics.Process.GetProcessesByName(process).Length != 0); }

糟糕…忘记了内存使用情况等…

bool processIsRunning(string process) { System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName(process); foreach (System.Diagnostics.Process proc in processes) { Console.WriteLine("Current physical memory : " + proc.WorkingSet64.ToString()); Console.WriteLine("Total processor time : " + proc.TotalProcessorTime.ToString()); Console.WriteLine("Virtual memory size : " + proc.VirtualMemorySize64.ToString()); } return (processes.Length != 0); }

(我将把数据从方法提取出来的机制留给你 – 现在是17:15,我准备回家了:)

您可以使用System.Diagnostics.Process类。 有一个GetProcesses()和一个GetProcessesByName()方法,将获得数组中所有现有进程的列表。 Process对象具有所有需要检测进程是否正在运行的信息。

如果您想了解正在运行的IE进程:

System.Diagnostics.Process[] ieProcs = Process.GetProcessesByName("IEXPLORE"); if (ieProcs.Length > 0) { foreach (System.Diagnostics.Process p in ieProcs) { String virtualMem = p.VirtualMemorySize64.ToString(); String physicalMem = p.WorkingSet64.ToString(); String cpu = p.TotalProcessorTime.ToString(); } }

您可以使用WMI来查询沿线的内容

"SELECT * FROM Win32_Process WHERE Name = '<your process name here>'"

不过,对于WMI来说,处理器的使用情况有点棘手。 正如伊恩·雅各布斯(IanJacobs)所建议的那样,你可能更喜欢使用System.Diagnostics.Process。

像这样的东西:

foreach ( WindowsProcess in Process.GetProcesses) { if (WindowsProcess.ProcessName == nameOfProcess) { Console.WriteLine(WindowsProcess.WorkingSet64.ToString); Console.WriteLine(WindowsProcess.UserProcessorTime.ToString); Console.WriteLine(WindowsProcess.TotalProcessorTime.ToString); } }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐