123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- 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 Microsoft.Win32;
- namespace CPUMonitor
- {
- public partial class frmCPU : Form
- {
- private RegistryKey AppRegKey;
- private const int LIGHT_MAX = 0x1F;
- public frmCPU()
- {
- InitializeComponent();
- nicoNotifyIcon.Icon = this.Icon;
- nicoNotifyIcon.MouseClick += new MouseEventHandler(TrayIconClick);
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- AppRegKey = Registry.CurrentUser.CreateSubKey("Software\\CPUMonitor");
- String[] PortNames = System.IO.Ports.SerialPort.GetPortNames();
- Array.Sort<String>(PortNames, delegate(string strA, string strB) { return int.Parse(strA.Substring(3)).CompareTo(int.Parse(strB.Substring(3))); });
- cmbComPort.Items.Clear();
- cmbComPort.Items.AddRange(PortNames);
- cmbComPort.SelectedIndex = System.Convert.ToInt32(AppRegKey.GetValue("Port", "1")) - 1;
- serSerialPort.PortName = cmbComPort.Text;
- Hide();
- }
- private void NotifyLight(int Red, int Green, int Blue)
- {
- byte[] buffer = new byte[3];
- buffer[0] = (byte)(0x80 | (Red & LIGHT_MAX));
- buffer[1] = (byte)(0x40 | (Green & LIGHT_MAX));
- buffer[2] = (byte)(0x20 | (Blue & LIGHT_MAX));
- try
- {
- serSerialPort.PortName = cmbComPort.Text;
- serSerialPort.Open();
- serSerialPort.Write(buffer, 0, buffer.Length);
- serSerialPort.Close();
- }
- catch (Exception e)
- {
- }
- }
- private void tmrCPUTimer_Tick(object sender, EventArgs e)
- {
- float CPUUsage = pcCPUUsage.NextValue();
- int Red = 0;
- int Green = 0;
- int Blue = 0;
- if (CPUUsage < 25)
- {
- Green = (int)((LIGHT_MAX / 25) * CPUUsage);
- }
- else if (CPUUsage < 50)
- {
- Blue = (int)((LIGHT_MAX / 25) * (CPUUsage - 25));
- Green = LIGHT_MAX - Blue;
- }
- else if (CPUUsage < 75)
- {
- Red = (int)((LIGHT_MAX / 25) * (CPUUsage - 50));
- Blue = LIGHT_MAX - Red;
- }
- else
- {
- Red = LIGHT_MAX;
- }
- NotifyLight(Red, Green, Blue);
- lblCPU.Text = ((int)CPUUsage).ToString() + "%";
- }
- private void btnExit_Click(object sender, EventArgs e)
- {
- Application.Exit();
- }
- private void btnMinimizeToTray_Click(object sender, EventArgs e)
- {
- this.Hide();
- }
- private void TrayIconClick(object sender, MouseEventArgs e)
- {
- this.Show();
- this.WindowState = FormWindowState.Normal;
- }
- private void cbPort_SelectedIndexChanged(object sender, EventArgs e)
- {
- AppRegKey.SetValue("Port", cmbComPort.SelectedIndex + 1);
- serSerialPort.PortName = cmbComPort.Text;
- }
- }
- }
|