C# 收集机器硬件信息的相关代码片断(cpu频率、磁盘可用空间、内存容量……)...

it2024-11-23  27

C# 收集机器硬件信息的相关代码片断(cpu频率、磁盘可用空间、内存容量……)

//cpu频率

using  Microsoft.Win32; private   int  GetCPUFrequency()         {            RegistryKey rk  =  Registry.LocalMachine.OpenSubKey( @" HARDWARE\DESCRIPTION\System\CentralProcessor\0 " );             object  obj  =  rk.GetValue( " ~MHz " );             int  CPUFrequency  =  ( int )obj;             return  CPUFrequency;         }

//

//磁盘空间 Management

using  System.Management; private   long  GetFreeDiskSpace()            {                ManagementObject disk  =   new  ManagementObject(                     " win32_logicaldisk.deviceid=\ " d:\ "" );                disk.Get();                 string  totalByte  =  disk[ " FreeSpace " ].ToString();                 long  freeDiskSpaceMb  =  Convert.ToInt64(totalbyte) / 1024 / 1024 ;                 return  freeDiskSpaceMb;            }

 

///内存信息

using  System; using  System.Text; using  System.Runtime.InteropServices; namespace  ConsoleApplication1 {    /**//// <summary>    /// Summary description for Class1.    /// </summary>                class Class1        {            [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);            public static int Main(string[] args)             {                Class1 class1 = new Class1();                class1.GetMemoryStatus();                return 0;            }            private void GetMemoryStatus()            {                MEMORY_INFO MemInfo;                MemInfo = new MEMORY_INFO();                GlobalMemoryStatus(ref MemInfo);                long totalMb = Convert.ToInt64( MemInfo.dwTotalPhys.ToString())/1024/1024;                long avaliableMb = Convert.ToInt64( MemInfo.dwAvailPhys.ToString())/1024/1024;                Console.WriteLine( "物理内存共有" + totalMb + " MB");                Console.WriteLine( "可使用的物理内存有" + avaliableMb +" MB");            }        }

//

//cpu名字

using  Microsoft.Win32; private   string  GetCPUName()             {                RegistryKey rk  =  Registry.LocalMachine.OpenSubKey( @" HARDWARE\DESCRIPTION\System\CentralProcessor\0 " );                 object  obj  =  rk.GetValue( " ProcessorNameString " );                 string  CPUName  =  ( string )obj;                 return  CPUName.TrimStart();             }

 

/////OS版本

using  System; namespace  determineOS_CS {  class Class1   {      static void Main(string[] args)      {         // Get OperatingSystem information from the system namespace.         System.OperatingSystem osInfo =System.Environment.OSVersion;                  // Determine the platform.         switch(osInfo.Platform)         {            // Platform is Windows 95, Windows 98,             // Windows 98 Second Edition, or Windows Me.            case System.PlatformID.Win32Windows:                        switch (osInfo.Version.Minor)               {                  case 0:                     Console.WriteLine ("Windows 95");                     break;                  case 10:                     if(osInfo.Version.Revision.ToString()=="2222A")                        Console.WriteLine("Windows 98 Second Edition");                     else                        Console.WriteLine("Windows 98");                     break;                  case  90:                     Console.WriteLine("Windows Me");                     break;               }               break;                     // Platform is Windows NT 3.51, Windows NT 4.0, Windows 2000,            // or Windows XP.            case System.PlatformID.Win32NT:               switch(osInfo.Version.Major)               {                  case 3:                     Console.WriteLine("Windows NT 3.51");                     break;                  case 4:                     Console.WriteLine("Windows NT 4.0");                     break;                  case 5:                     if (osInfo.Version.Minor==0)                         Console.WriteLine("Windows 2000");                     else                        Console.WriteLine("Windows XP");                     break;               }break;         }         Console.ReadLine ();      }   }}

转载于:https://www.cnblogs.com/xiaozhang/archive/2006/07/19/454638.html

最新回复(0)