C# 一些硬件序列号

来源:互联网 发布:前台 知乎 编辑:程序博客网 时间:2024/05/17 03:54
using System.Management;using System.Management.Instrumentation;private void GetInfo() { string cpuInfo = "";//cpu序列号 ManagementClass cimobject = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = cimobject.GetInstances(); foreach(ManagementObject mo in moc) { cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); Response.Write ("cpu序列号:"+cpuInfo.ToString ()); } //获取硬盘ID String HDid; ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moc1 = cimobject1.GetInstances(); foreach(ManagementObject mo in moc1) { HDid = (string)mo.Properties["Model"].Value; Response.Write ("硬盘序列号:"+HDid.ToString ()); } //获取网卡硬件地址 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc2 = mc.GetInstances(); foreach(ManagementObject mo in moc2) { if((bool)mo["IPEnabled"] == true) Response.Write("MAC address\t{0}"+mo["MacAddress"].ToString()); mo.Dispose(); } } public static float GetCPUPersent() { float cpuload = 0; const string categoryname = "processor"; const string countername = "% processor time"; const string instancename = "_total"; PerformanceCounter pc = new PerformanceCounter(categoryname, countername, instancename); int i = 10; while (i > 0) { Thread.Sleep(1000); // wait for 1 second cpuload = pc.NextValue(); if (cpuload > 0) { break; } i--; } return cpuload; } public static void GetDiskSpace(string path, out long DiskAll, out long DiskActive) { DiskAll = 0; DiskActive = 0; long a, b, c; int aaa = GetDiskFreeSpaceEx(path, out a, out b, out c); DiskAll = (long)(b / 1024 / 1024); DiskActive = (long)(a / 1024 / 1024); } public static void GetMemoryInfo(out uint MemoryAll, out uint MemoryUsed) { MemoryAll = 0; MemoryUsed = 0; MEMORY_INFO MemInfo = new MEMORY_INFO(); GlobalMemoryStatus(ref MemInfo); MemoryAll = MemInfo.dwTotalPhys / 1024 / 1024; MemoryUsed = (MemInfo.dwTotalPhys - MemInfo.dwAvailPhys) / 1024 / 1024; } [DllImport("kernel32")] public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo); //定义内存的信息结构 [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.dll", EntryPoint = "GetDiskFreeSpaceExA")] public static extern int GetDiskFreeSpaceEx(string lpRootPathName, out long lpFreeBytesAvailable, out long lpTotalNumberOfBytes, out long lpTotalNumberOfFreeBytes);
原创粉丝点击