C#-获取磁盘,cpu,内存信息
2023-09-11 14:14:00 时间
获取磁盘信息
zongdaxiao = GetHardDiskSpace("C") * 1.0 / 1024;
user = GetHardDiskFreeSpace("C") * 1.0 / 1024;
///
/// 获取指定驱动器的空间总大小(单位为B)
///
/// 只需输入代表驱动器的字母即可 (大写)
///
public long GetHardDiskSpace(string str_HardDiskName)
{
long totalSize = new long();
str_HardDiskName = str_HardDiskName + ":\\";
System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();
foreach (System.IO.DriveInfo drive in drives)
{
if (drive.Name == str_HardDiskName)
{
totalSize = drive.TotalSize / (1024 * 1024);
}
}
return totalSize;
}
///
/// 获取指定驱动器的剩余空间总大小(单位为B)
///
/// 只需输入代表驱动器的字母即可
///
public long GetHardDiskFreeSpace(string str_HardDiskName)
{
long freeSpace = new long();
str_HardDiskName = str_HardDiskName + ":\\";
System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();
foreach (System.IO.DriveInfo drive in drives)
{
if (drive.Name == str_HardDiskName)
{
freeSpace = drive.TotalFreeSpace / (1024 * 1024);
}
}
return freeSpace;
}
*****************************************************
获取总内存(运行)
zongneicun = GetMemoryStatus();
[StructLayout(LayoutKind.Sequential)]
public struct MEMORY_INFO
{
public uint dwLength;
public uint dwMemoryLoad;
public uint dwTotalPhys;
public uint dwAvailPhys;
public uint dwTotalPageFile;
public uint dwAvailPageFile;
public uint dwTotalVirtual;
public uint dwAvailVirtual;
}
[DllImport("kernel32")]
public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);
MEMORY_INFO MemInfo = new MEMORY_INFO();
private long GetMemoryStatus()
{
GlobalMemoryStatus(ref MemInfo);
long totalMb = Convert.ToInt64(MemInfo.dwTotalPhys.ToString()) / 1024 / 1024;
//long avaliableMb = Convert.ToInt64(MemInfo.dwAvailPhys.ToString()) / 1024 / 1024;
return totalMb;
//MessageBox.Show("物理内存共有" + totalMb.ToString () + " MB" + "可使用的物理内存有" + avaliableMb.ToString () + " MB");
//Console.WriteLine("物理内存共有" + totalMb + " MB");
//Console.WriteLine("可使用的物理内存有" + avaliableMb + " MB");
}
******************************************************
//获得pro使用内存
public int pnc()
{
Process[] pro = Process.GetProcesses();
double total = 0;
Process temp;
int i;
for (i = 0; i < pro.Length; i++)
{
temp = pro[i];
total = temp.PrivateMemorySize + total;
}
return (int)(total / 1024 / 1024);
}
*******************************************************
获取cpu使用率
PerformanceCounter PC = new PerformanceCounter("Processor", "% Processor Time", "_Total");
label1.Text = "Cpu: " + Convert.ToInt32(PC.NextValue()) + "%";
*************************************************************
获取系统运行时间
label4.Text = "System Runtime: " + (Environment.TickCount / 60000).ToString();
相关文章
- C#子线程中更新ui-----c# 多线程多文件批量下载
- 教程-Delphi调用C# WEBSERVICE(二)
- C#内存映射文件消息队列实战演练(MMF—MQ)
- C#.NET常见问题(FAQ)-listView如何显示网格线
- webbrowser 常用方法(C#)
- C# 代码实现设置用户"NETWORK SERVICE"具有对文件夹的读取权限。
- 重新整理数据结构与算法(c#)——算法套路贪心算法[二十八]
- 数字图像处理 使用C#进行图像处理六 内存映射文件
- C#中各种编码格式的区别
- C# 多线程参数传递
- Atitit.视频文件加密的方法大的总结 java c# php
- Atitit.加密算法 des aes 各个语言不同的原理与解决方案java php c#
- 计算某一段程序消耗的内存和时间【C#】
- C#绘制三角形并填充,使用winform实现qq聊天气泡
- C#开发的OpenRA游戏高性能内存访问的方法
- (4)C#工程文件介绍
- C#获取特定进程CPU和内存使用率
- C# 获取C++内存
- C#比较两个对象是否为同一个对象。 Visual Studio调试器指南---多线程应用程序调试(一)