C⻠プログラミング取得クライアントハードウェアおよびシステム情報機能例


本明細書の例は、クライアント・コンピュータのハードウェアおよびシステム情報機能を獲得するためのC〓というものである。皆さんに参考にしてあげます。具体的には以下の通りです。
ここでは、CPU、ハードディスク、IP、MACアドレス、オペレーティングシステムなどを含む、C〓を用いてクライアントコンピュータのハードウェアおよびシステム情報を取得する。
1、プロジェクトはSystem.Managementライブラリを参照する。
2、HardwareHandler.cs種類のファイルを作成する

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
namespace MyStudy.Utility
{
  /// <summary>
  ///         
  /// </summary>
  public class HardwareHandler
  {
    public enum WMIPath
    {
      //   
      Win32_Processor,     // CPU    
      Win32_PhysicalMemory,  //      
      Win32_Keyboard,     //   
      Win32_PointingDevice,  //      ,    。
      Win32_FloppyDrive,    //      
      Win32_DiskDrive,     //      
      Win32_CDROMDrive,    //      
      Win32_BaseBoard,     //   
      Win32_BIOS,       // BIOS   
      Win32_ParallelPort,   //   
      Win32_SerialPort,    //   
      Win32_SerialPortConfiguration, //     
      Win32_SoundDevice,    //      ,     。
      Win32_SystemSlot,    //      (ISA & PCI & AGP)
      Win32_USBController,   // USB    
      Win32_NetworkAdapter,  //      
      Win32_NetworkAdapterConfiguration, //        
      Win32_Printer,      //    
      Win32_PrinterConfiguration, //      
      Win32_PrintJob,     //      
      Win32_TCPIPPrinterPort, //      
      Win32_POTSModem,     // MODEM
      Win32_POTSModemToSerialPort, // MODEM   
      Win32_DesktopMonitor,  //    
      Win32_DisplayConfiguration, //   
      Win32_DisplayControllerConfiguration, //     
      Win32_VideoController, //     。
      Win32_VideoSettings,  //          。
      //     
      Win32_TimeZone,     //   
      Win32_SystemDriver,   //     
      Win32_DiskPartition,  //     
      Win32_LogicalDisk,   //     
      Win32_LogicalDiskToPartition,   //              。
      Win32_LogicalMemoryConfiguration, //       
      Win32_PageFile,     //        
      Win32_PageFileSetting, //      
      Win32_BootConfiguration, //       
      Win32_ComputerSystem,  //        
      Win32_OperatingSystem, //       
      Win32_StartupCommand,  //         
      Win32_Service,     //        
      Win32_Group,      //      
      Win32_GroupUser,    //      
      Win32_UserAccount,   //     
      Win32_Process,     //     
      Win32_Thread,      //     
      Win32_Share,      //   
      Win32_NetworkClient,  //          
      Win32_NetworkProtocol, //         
    }
    /// <summary>
    /// Cpu  
    /// </summary>
    /// <returns></returns>
    public void CpuInfo()
    {
      try
      {
        ManagementClass mc = new ManagementClass(WMIPath.Win32_Processor.ToString());
        ManagementObjectCollection moc = mc.GetInstances();
        foreach (ManagementObject mo in moc)
        {
          Console.WriteLine("CPU  :" + mo.Properties["ProcessorId"].Value);
          Console.WriteLine("CPU  :" + mo.Properties["Name"].Value);
          Console.WriteLine("CPU  :" + mo.Properties["Status"].Value);
          Console.WriteLine("    :" + mo.Properties["SystemName"].Value);
        }
      }
      catch
      {
        Console.WriteLine("Erroe");
      }
    }
    /// <summary>
    ///     
    /// </summary>
    public void MainBoardInfo()
    {
      try
      {
        ManagementClass mc = new ManagementClass(WMIPath.Win32_BaseBoard.ToString());
        ManagementObjectCollection moc = mc.GetInstances();
        foreach (ManagementObject mo in moc)
        {
          Console.WriteLine("  ID:" + mo.Properties["SerialNumber"].Value);
          Console.WriteLine("   :" + mo.Properties["Manufacturer"].Value);
          Console.WriteLine("  :" + mo.Properties["Product"].Value);
          Console.WriteLine("  :" + mo.Properties["Version"].Value);
        }
      }
      catch
      {
        Console.WriteLine("Erroe");
      }
    }
    /// <summary>
    ///     
    /// </summary>
    public void DiskDriveInfo()
    {
      try
      {
        ManagementClass mc = new ManagementClass(WMIPath.Win32_DiskDrive.ToString());
        ManagementObjectCollection moc = mc.GetInstances();
        foreach (ManagementObject mo in moc)
        {
          Console.WriteLine("  SN:" + mo.Properties["SerialNumber"].Value);
          Console.WriteLine("  :" + mo.Properties["Model"].Value);
          Console.WriteLine("  :" + Convert.ToDouble(mo.Properties["Size"].Value) / (1024 * 1024 * 1024));
        }
      }
      catch
      {
        Console.WriteLine("Erroe");
      }
    }
    /// <summary>
    ///       
    /// </summary>
    public void NetworkInfo()
    {
      try
      {
        ManagementClass mc = new ManagementClass(WMIPath.Win32_NetworkAdapterConfiguration.ToString());
        ManagementObjectCollection moc = mc.GetInstances();
        foreach (ManagementObject mo in moc)
        {
          Console.WriteLine("MAC  :" + mo.Properties["MACAddress"].Value);
          Console.WriteLine("IP  :" + mo.Properties["IPAddress"].Value);
        }
      }
      catch
      {
        Console.WriteLine("Erroe");
      }
    }
    /// <summary>
    ///       
    /// </summary>
    public void OsInfo()
    {
      try
      {
        ManagementClass mc = new ManagementClass(WMIPath.Win32_OperatingSystem.ToString());
        ManagementObjectCollection moc = mc.GetInstances();
        foreach (ManagementObject mo in moc)
        {
          Console.WriteLine("    :" + mo.Properties["Name"].Value);
          Console.WriteLine("  :" + mo.Properties["Version"].Value);
          Console.WriteLine("    :" + mo.Properties["SystemDirectory"].Value);
        }
      }
      catch
      {
        Console.WriteLine("Erroe");
      }
    }
  }
}

C˜関連の内容についてもっと興味がある読者は、当駅のテーマを見ることができます。「C〓〓〓プログラムの設計のスレッドは技巧を使って総括します。」、「WinFormコントロールの使い方のまとめ」、「C〓中XMLファイルの操作技術のまとめ」、「C〓〓よくあるコントロールの使い方教程」、「C〓〓〓データ構造とアルゴリズム教程」、「Cハハハハ配列操作技術のまとめ」および「C铅対象プログラム設計入門教程
ここで述べたように、皆さんのC〓プログラムの設計に役に立ちます。