using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices;
using System.Management;
namespace CPU_Detect
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Process[] MyProcesses;
Thread td;
private void myUser()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_Processor");
foreach (ManagementObject myobject in searcher.Get())
{
tssluse.Text = myobject["LoadPercentage"].ToString()+" %";
lblCPU.Text = myobject["LoadPercentage"].ToString() + " %";
mheight = Convert.ToInt32(myobject["LoadPercentage"].ToString());
if (mheight == 100)
panel3.Height = 100;
CreateImage();
Memory();
}
} private void Memory()
{
Microsoft.VisualBasic.Devices.Computer myInfo = new Microsoft.VisualBasic.Devices.Computer();
//获取物理内存总量
pbMemorySum.Maximum = Convert.ToInt32(myInfo.Info.TotalPhysicalMemory/1024/1024);
pbMemorySum.Value = Convert.ToInt32(myInfo.Info.TotalPhysicalMemory/1024/1024);
lblSum.Text = (myInfo.Info.TotalPhysicalMemory / 1024).ToString();
//获取可用物理内存总量
pbMemoryUse.Maximum = Convert.ToInt32(myInfo.Info.TotalPhysicalMemory/1024/1024);
pbMemoryUse.Value = Convert.ToInt32(myInfo.Info.AvailablePhysicalMemory/1024/1024);
lblMuse.Text = (myInfo.Info.AvailablePhysicalMemory / 1024).ToString();
//获取虚拟内存总量
pbVmemorysum.Maximum = Convert.ToInt32(myInfo.Info.TotalVirtualMemory/1024/1024);
pbVmemorysum.Value = Convert.ToInt32(myInfo.Info.TotalVirtualMemory/1024/1024);
lblVinfo.Text = (myInfo.Info.TotalVirtualMemory / 1024).ToString();
//获取可用虚拟内存总量
pbVmemoryuse.Maximum = Convert.ToInt32(myInfo.Info.TotalVirtualMemory / 1024 / 1024);
pbVmemoryuse.Value = Convert.ToInt32(myInfo.Info.AvailableVirtualMemory/ 1024 / 1024);
lblVuse.Text = (myInfo.Info.AvailableVirtualMemory / 1024).ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
MyProcesses = Process.GetProcesses();
tsslNum.Text = MyProcesses.Length.ToString();
myUser();
} private void timer1_Tick(object sender, EventArgs e)
{
MyProcesses = Process.GetProcesses();
tsslNum.Text = MyProcesses.Length.ToString();
td = new Thread(new ThreadStart(myUser));
td.Start();
} private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (td != null)
{
td.Abort();
}
}
int mheight = 0;
private void CreateImage()
{
int i=panel3.Height/100;
Bitmap image = new Bitmap(panel3.Width,panel3.Height);
Graphics g = Graphics.FromImage(image);
g.Clear(Color.Green);
SolidBrush mybrush = new SolidBrush(Color.Lime);
g.FillRectangle(mybrush,0,panel3.Height-mheight*i,26,mheight*i);
panel3.BackgroundImage = image;
}
}
}

C#做的CPU内存使用率的更多相关文章

  1. Ubuntu 16.04安装indicator-sysmonitor实现导航条显示上下行网速/CPU/内存使用率

    安装: sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor sudo apt-get update sudo apt-get in ...

  2. 使用.NET FrameWork获取CPU,内存使用率以及磁盘空间

    在以前,我们想获取CPU,内存等信息就不得不借助win32 API来实现.但现在,.NET FrameWork已经把这些API封装到.NET类库中了,所以我们可以借助.NET类库很轻松的获取这些信息. ...

  3. shell脚本监控cpu/内存使用率 转

    该脚本检测cpu和内存的使用情况,只需要调整memorySetting.cpuSetting.userEmail要发邮件报警的email地址即可 如果没有配置发邮件参数的哥们,已配置了的,直接飞到代码 ...

  4. Linux下使用java获取cpu、内存使用率

    原文地址:http://www.voidcn.com/article/p-yehrvmep-uo.html 思路如下:Linux系统中可以用top命令查看进程使用CPU和内存情况,通过Runtime类 ...

  5. 转:ZABBIX监控H3C设备的CPU和内存使用率

      由于最近监控的H3C路由器经常出现死机现象,SNMP获取不到数据,后面检查发现是CPU使用率过高,直接导致无法处理SNMP请求,所以需求来了,怎样通过SNMP监控H3C路由器的CPU和内存使用率? ...

  6. 获取Windows操作系统的CPU使用率以及内存使用率

    此功能参考了ProcessHacker项目的代码. 声明定义 typedef struct _UINT64_DELTA { ULONG64 Value; ULONG64 Delta; } UINT64 ...

  7. Ubuntu 16.04 标题栏实时显示上下行网速、CPU及内存使用率--indicator-sysmonitor

    ---------------------------------------------------------------------------- 原文地址:http://blog.csdn.N ...

  8. C#获取特定进程CPU和内存使用率

    首先是获取特定进程对象,可以使用Process.GetProcesses()方法来获取系统中运行的所有进程,或者使用Process.GetCurrentProcess()方法来获取当前程序所对应的进程 ...

  9. Ubuntu 16.04 标题栏实时显示上下行网速、CPU及内存使用率

    有时感觉网络失去响应,就通过Ubuntu 14.04自带的系统监视器程序来查看当前网速,但是这样很不方便,遂打算让网速显示在标题栏,那样就随时可直观的看到.一番搜索尝试后,成功实现!同时也实现了CPU ...

随机推荐

  1. php获取当前月份的前(后)几个月

    //获取当前月份的前一月 function GetMonth($sign) { //得到系统的年月 $tmp_date=date("Ym"); //切割出年份 $tmp_year= ...

  2. [NOI2018]你的名字(68pts) 后缀自动机

    讲解在满分做法的博客中 Code: #include <cstdio> #include <algorithm> #include <cstring> #defin ...

  3. BZOJ 2555: SubString 后缀自动机_LCT

    很水的一道题,就是有些细节没注意到. 比如说将调试信息误以为是最终结果而多调了20分钟QAQ ..... 我们注意到,每新加一个节点,改变的是该节点沿着 Parent 走一直走到根节点. 对应的,在 ...

  4. [NOIP补坑计划]NOIP2013 题解&做题心得

    场上预计得分:100+100+100+100+100+60=560(省一分数线410) 五道傻逼题+一道大搜索题…… 题解: D1T1 转圈游戏 题面 水题送温暖~ #include<algor ...

  5. 移动端mete设置

    <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang="zh-cmn-Hans"&g ...

  6. 不要在.h文件中定义变量

    今天在头文件.h中初始化了一个数组和函数,在编译的时候提示这个数组和函数重新定义了,检查后发现,犯了一个致命的错误,在头文件中定义变量... 以下引用别人的一篇说明,警示自己. C语言作为一种结构化的 ...

  7. Java基础学习总结(4)——对象转型

    一.对象转型介绍 对象转型分为两种:一种叫向上转型(父类对象的引用或者叫基类对象的引用指向子类对象,这就是向上转型),另一种叫向下转型.转型的意思是:如把float类型转成int类型,把double类 ...

  8. 【转】C# 正则表达式大全

    [转]C# 正则表达式大全 前言 在网上看到一个不错的简易版正则匹配和替换的工具,现在补充进来,感觉还不错,效果如下(输入验证中文汉字的正则表达式) 在线下载   密码:5tpt 注:好像也是一位园友 ...

  9. 待字闺中之Magic Index 分析

    给定一个数组A,当中有一个位置被称为Magic Index,含义是:如果i是Magic Index.则A[i] = i. 如果A中的元素递增有序.且不反复,请给出方法,找到这个Magic Index. ...

  10. Codeforces Round #256 (Div. 2) B. Suffix Structures(模拟)

    题目链接:http://codeforces.com/contest/448/problem/B --------------------------------------------------- ...