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

    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 ();
          }

       }

    }
  • 相关阅读:
    BZOJ3732: Network(Kruskal重构树)
    AtCoder Beginner Contest 103
    2018.7.21NOIP模拟赛?解题报告
    PE刷题记
    杜教筛入门
    浅谈积性函数的线性筛法
    BZOJ4916: 神犇和蒟蒻(杜教筛)
    BZOJ2818: Gcd(莫比乌斯反演)
    LD1-B(最短路径-SPFA)
    UVa 10837 A Research Problem 欧拉函数
  • 原文地址:https://www.cnblogs.com/xiaozhang/p/454638.html
Copyright © 2011-2022 走看看