2013-05-12 2 views
0

노트북에서 HW에 대한 정보를 얻으려고합니다. WMI를 통해이 작업을 수행하지만 항상 예를 ​​들어 노트북 모델에 대한 정보가 포함 된 것은 아닙니다. 제조업체에 따라 다르지만 SONY는 WMI에 HW 정보를 포함하지 않습니다.어디에서 노트북의 모델명에 대한 정보를 얻을 수 있습니까?

  FileStream fs = new FileStream(@"C:\log.txt", FileMode.OpenOrCreate); 
     StreamWriter sw = new StreamWriter(fs); 
     string[] Names = { "Win32_Fan", "Win32_HeatPipe", "Win32_Refrigeration", "Win32_TemperatureProbe", "Win32_Keyboard", "Win32_PointingDevice", 
          "Win32_AutochkSetting", "Win32_CDROMDrive" , "Win32_DiskDrive" ,"Win32_FloppyDrive", "Win32_PhysicalMedia","Win32_TapeDrive" , 
         "Win32_1394Controller","Win32_1394ControllerDevice", "Win32_AllocatedResource", "Win32_AssociatedProcessorMemory","Win32_BaseBoard", 
         "Win32_BIOS", "Win32_Bus","Win32_CacheMemory","Win32_ControllerHasHub","Win32_DeviceBus","Win32_DeviceMemoryAddress", "Win32_DeviceSettings", 
         "Win32_DMAChannel","Win32_FloppyController","Win32_IDEController","Win32_IDEControllerDevice","Win32_InfraredDevice","Win32_IRQResource","Win32_MemoryArray", 
         "Win32_MemoryArrayLocation","Win32_MemoryDevice","Win32_MemoryDeviceArray","Win32_MemoryDeviceLocation","Win32_MotherboardDevice","Win32_OnBoardDevice", 
         "Win32_ParallelPort","Win32_PCMCIAController","Win32_PhysicalMemory","Win32_PhysicalMemoryArray","Win32_PhysicalMemoryLocation","Win32_PNPAllocatedResource", 
         "Win32_PNPDevice","Win32_PNPEntity","Win32_PortConnector","Win32_PortResource","Win32_Processor","Win32_SCSIController", "Win32_SCSIControllerDevice","Win32_SerialPort", 
         "Win32_SerialPortConfiguration","Win32_SerialPortSetting","Win32_SMBIOSMemory","Win32_SoundDevice","Win32_SystemBIOS","Win32_SystemDriverPNPEntity","Win32_SystemEnclosure", 
         "Win32_SystemMemoryResource","Win32_SystemSlot","Win32_USBController","Win32_USBControllerDevice","Win32_USBHub","Win32_NetworkAdapter", 
         "Win32_NetworkAdapterConfiguration","Win32_NetworkAdapterSetting","Win32_Battery","Win32_CurrentProbe","Win32_PortableBattery", 
         "Win32_PowerManagementEvent","Win32_VoltageProbe","Win32_DriverForDevice","Win32_Printer","Win32_PrinterConfiguration","Win32_PrinterController", 
         "Win32_PrinterDriver","Win32_PrinterDriverDll","Win32_PrinterSetting","Win32_PrintJob","Win32_TCPIPPrinterPort","Win32_POTSModem","Win32_POTSModemToSerialPort", 
         "Win32_DesktopMonitor","Win32_DisplayConfiguration","Win32_DisplayControllerConfiguration","Win32_VideoConfiguration","Win32_VideoController","Win32_VideoSettings"}; 

     foreach (string name in Names) 
     { 
      sw.WriteLine("                   "); 
      sw.WriteLine("<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); 
      sw.WriteLine(name); 
      sw.WriteLine("<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); 

      ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM " + name); 
      ManagementObjectCollection information = searcher.Get(); 

      foreach (ManagementObject obj in information) 
      { 

       foreach (PropertyData data in obj.Properties) 
       { 

        sw.WriteLine("{0} = {1}", data.Name, data.Value); 
       } 
      } 

     } 
     sw.Close(); 

어디에서이 정보를 얻을 수 있습니까? 감사합니다.

답변

1

HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS 아래의 레지스트리에 저장된 BIOS 정보에서이 정보를 가져올 수 있습니다. SystemProductName 또는 SystemVersion 값이어야합니다.

+0

감사합니다. 다른 시스템에서 더 많은 정보를 수집하려고합니다. 그러나 IMAC는 레지스트리에이 정보가 없습니다. 나는이 정보가 어느 PC에서나 어딘가에 있어야한다고 생각한다. 지금까지 필요한 정보의 일부만 받았습니다. – user2374929

0

모델 및 일련 번호는 "Win32_ComputerSystemProduct"에 있습니다.

관련 문제