添加依赖:依赖项---添加项目引用---浏览---浏览查找需要文件
Form1:代码
查看计算机基本信息:CPU利用率、内存使用、磁盘使用。两个按钮跳转日志
using System.Diagnostics;
using System.Threading;
using System.Management;
using System.Runtime.InteropServices;
using System.Security.Cryptography.Xml;
using System.Diagnostics.Tracing;
using System.Drawing;
using System.Collections.Generic;
using System;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using System.Text;
using ListView = System.Windows.Forms.ListView;
using Microsoft.VisualBasic.Logging;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
using System.Security.Cryptography;
//using System.Diagnostics.Tracing.Session;
namespace WinForms1
{
public partial class Form1 : System.Windows.Forms.Form
{
PerformanceCounter cpuCounter;
public Form1()
{
cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
InitializeComponent();
InitializeCpu();
InitializeNEICUN();
InitializeCIPAN();
}
//获取CPU利用率
private void InitializeCpu()
{
float cpu = cpuCounter.NextValue();
String num = cpu.ToString("0.0");
lb_cpu.Text = num + " %";
}
//内存使用量
private void InitializeNEICUN()
{
Microsoft.VisualBasic.Devices.Computer myInfo = new Microsoft.VisualBasic.Devices.Computer();
//获取物理内存总量
W_zong.Text = (myInfo.Info.TotalPhysicalMemory / 1024 / 1024 / 1024).ToString("0.0") + " GB";
//获取可用物理内存总量
W_ke.Text = (myInfo.Info.AvailablePhysicalMemory / 1024 / 1024 / 1024).ToString("0.0") + " GB";
}
//获取磁盘使用情况
private void InitializeCIPAN()
{
foreach (DriveInfo drive in DriveInfo.GetDrives())
{
if (drive.IsReady)
{
cipan_make.Text = drive.Name;
Ci_zong.Text = drive.TotalSize / 1024 / 1024 / 1024 + " GB";
Ci_yi.Text = (drive.TotalSize - drive.AvailableFreeSpace) / 1024 / 1024 / 1024 + " GB";
Ci_ke.Text = drive.AvailableFreeSpace / 1024 / 1024 / 1024 + " GB";
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
timer.Text = System.DateTime.Now.ToString();
InitializeCpu();
InitializeNEICUN();
InitializeCIPAN();
//Thread.Sleep(1000);
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
//Thread.Sleep(1000);
//判断操作系统位数
if (Environment.Is64BitOperatingSystem)
{
sys_weishu.Text = "64bit.";
}
else
{
sys_weishu.Text = "32bit.";
}
//richTextBox1.AppendText(Environment.NewLine);
name.Text = SystemInformation.ComputerName.ToString();//计算机名
OS.Text = Environment.OSVersion.Platform.ToString();//操作系统
banben.Text = Environment.OSVersion.VersionString.ToString();//版本号
cpu_geshu.Text = Environment.ProcessorCount.ToString();//处理器个数
}
// 跳转系统日志
private void button2_Click(object sender, EventArgs e)
{
Form3 f2 = new Form3();
f2.Show();
}
// 跳转应用程序日志
private void button3_Click(object sender, EventArgs e)
{
Form2 f3 = new Form2();
f3.Show();
}
跳转网络交换机 SNMP通讯
//private void btn_log_MouseDown(object sender, MouseEventArgs e)
//{
// Form4 f = new Form4();
// f.Show();
//}
}
}
Form1:运行结果
CPU利用率自动刷新
Form2:代码
应用程序日志,可以进行查询
using Microsoft.Extensions.Logging;
using Microsoft.VisualBasic.ApplicationServices;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock;
namespace WinForms1
{
public partial class Form2 : Form
{
DataTable dt = new DataTable("Datas");
DataColumn dc = new DataColumn();
EventLog eventLog = new EventLog(); //创建日志实例
public Form2()
{
InitializeComponent();
Task1();//多线程运行
dataGridView1.ColumnHeaderMouseClick += new DataGridViewCellMouseEventHandler(dataGridView1_ColumnHeaderMouseClick);
}
private void Form2_Load(object sender, EventArgs e)
{
dataGridView1.Columns[0].Width = 120;
dataGridView1.Columns[1].Width = 190;
dataGridView1.Columns[2].Width = 280;
dataGridView1.ReadOnly = true;// 设置 DataGridView1 为只读
//用户不能手动编辑单元格的内容
dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
// 设定包括Header和所有单元格的列宽自动调整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
//根据数据内容自动调整行高
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders;
// 设置用户不能手动给 DataGridView1 添加新行
dataGridView1.AllowUserToAddRows = false;
}
//自动在每行前面生成索引
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
//自动编号,与数据无关
Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dataGridView1.RowHeadersWidth - 4, e.RowBounds.Height);
TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dataGridView1.RowHeadersDefaultCellStyle.Font, rectangle, dataGridView1.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
}
private async Task Task1()
{
dc.AutoIncrement = true;//自动增加
dc.AutoIncrementSeed = 1;//起始为1
dc.AutoIncrementStep = 1;//步长为1
dc.AllowDBNull = false;//是否允许空值
//添加列
dt.Columns.Add("级别", typeof(string));
dt.Columns.Add("时间和日期", typeof(string));
dt.Columns.Add("名称", typeof(string));
dt.Columns.Add("内容", typeof(string));
dataGridView1.DataSource = dt;
eventLog.Log = "Application";//打开应用程序日志Application
EventLogEntryCollection collection = eventLog.Entries; //获取可遍历collection
label2.Text = $"一共有:{collection.Count}记录";
//string resul = "";
foreach (EventLogEntry item in collection)//遍历查询出来的数据
{
//添加行
DataRow newRow = dt.NewRow();
newRow["级别"] = item.EntryType.ToString();//设置第一行显示的数据
newRow["时间和日期"] = item.TimeWritten.ToString();//绑定剩余列的数据
newRow["名称"] = item.UserName;
newRow["内容"] = item.Message;
//一定记得行数据创建完毕后添加到列表中
dt.Rows.Add(newRow);
}
}
// 在事件处理程序中获取单击的列的名称和排序方向,并使用该信息来筛选和排序数据。
private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
string columnName = dataGridView1.Columns[e.ColumnIndex].Name;
ListSortDirection sortDirection = ListSortDirection.Ascending;
if (dataGridView1.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection == SortOrder.Ascending)
{
sortDirection = ListSortDirection.Descending;
}
dataGridView1.Sort(dataGridView1.Columns[columnName], sortDirection);
// 筛选数据
string filterExpression = string.Format("{0} LIKE '%{1}%'", columnName, textBox1.Text);
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = filterExpression;
dataGridView1.Update();
label2.Text = "一共有" + dataGridView1.Rows.Count.ToString() + "条记录";
}
}
}
Form2:运行
textBox1可以进行查询,动态显示记录
右键标题行升序降序排列
Form3:代码
系统日志
using Microsoft.Extensions.Logging;
using Microsoft.VisualBasic.ApplicationServices;
using Microsoft.VisualBasic.Devices;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Diagnostics;
using System.Diagnostics.Metrics;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Button;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock;
using CheckBox = System.Windows.Forms.CheckBox;
using ComboBox = System.Windows.Forms.ComboBox;
namespace WinForms1
{
public partial class Form3 : Form
{
EventLog eventLog = new EventLog(); //创建日志实例
DataTable DT = new DataTable("Datas");
DataColumn dc = new DataColumn();
public Form3()
{
Control.CheckForIllegalCrossThreadCalls = false;
InitializeComponent();
Task1();//多线程运行;
dataGridView1.ColumnHeaderMouseClick += new DataGridViewCellMouseEventHandler(dataGridView1_ColumnHeaderMouseClick);
}
private void Form3_Load(object sender, EventArgs e)
{
dataGridView1.Columns[0].Width = 120;
dataGridView1.Columns[1].Width = 190;
dataGridView1.Columns[2].Width = 280;
//dataGridView1.RowHeadersVisible = false;//隐藏最前面的空白列
//用户不能手动编辑单元格的内容
dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
// 设定包括Header和所有单元格的列宽自动调整
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
//根据数据内容自动调整行高
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders;
// 设置用户不能手动给 DataGridView1 添加新行
dataGridView1.AllowUserToAddRows = false;
}
//自动在每行前面生成索引
private void dataGridView1_RowPostPaint_1(object sender, DataGridViewRowPostPaintEventArgs e)
{
//自动编号,与数据无关
Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dataGridView1.RowHeadersWidth - 4, e.RowBounds.Height);
TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dataGridView1.RowHeadersDefaultCellStyle.Font, rectangle, dataGridView1.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
}
private async Task Task1()
{
dc.AutoIncrement = true;//自动增加
dc.AutoIncrementSeed = 1;//起始为1
dc.AutoIncrementStep = 1;//步长为1
dc.AllowDBNull = false;//是否允许空值
//添加列
DT.Columns.Add("级别", typeof(string));
DT.Columns.Add("时间和日期", typeof(string));
DT.Columns.Add("名称", typeof(string));
DT.Columns.Add("内容", typeof(string));
//dc.DolumnType[0] = DateGridCheckBoxColumn;
dataGridView1.DataSource = DT;
eventLog.Log = "System";//打开系统日志System
EventLogEntryCollection collection = eventLog.Entries; //获取可遍历collection
label3.Text = $"一共有:{collection.Count}条记录";
//string resul = "";
foreach (EventLogEntry item in collection)//遍历查询出来的数据
{
//添加行
DataRow newRow = DT.NewRow();
newRow["级别"] = item.EntryType.ToString();//设置第一行显示的数据
newRow["时间和日期"] = item.TimeWritten.ToString();//绑定剩余列的数据
newRow["名称"] = item.UserName;
newRow["内容"] = item.Message;
//一定记得行数据创建完毕后添加到列表中
DT.Rows.Add(newRow);
}
}
// 在事件处理程序中获取单击的列的名称和排序方向,并使用该信息来筛选和排序数据。
private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
string columnName = dataGridView1.Columns[e.ColumnIndex].Name;
ListSortDirection sortDirection = ListSortDirection.Ascending;
if (dataGridView1.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection == SortOrder.Ascending)
{
sortDirection = ListSortDirection.Descending;
}
dataGridView1.Sort(dataGridView1.Columns[columnName], sortDirection);
// 筛选数据
string filterExpression = string.Format("{0} LIKE '%{1}%'", columnName, textBox1.Text);
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = filterExpression;
dataGridView1.Update();
label3.Text = "一共有" + dataGridView1.Rows.Count.ToString() + "条记录";
}
}
}
Form3:运行结果
textBox1可以进行查询,动态显示记录。
右键标题行升序降序排列