-
c#获到电脑硬件配置信息
usingSystem;
usingSystem.Management; usingSystem.Collections; usingSystem.Collections.Specialized; usingSystem.Text; namespaceRainsoft.Management { #regionWMIPath publicenumWMIPath { //硬件 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,//已安装的网络协议 } #endregion ///<summary> ///获取系统信息 ///</summary> ///<example> ///<code> ///WMIw=newWMI(WMIPath.Win32_NetworkAdapterConfiguration); ///for(inti=0;i<w.Count;i++) ///{ ///if((bool)w[i,"IPEnabled"]) ///{ ///Console.WriteLine("Caption:{0}",w[i,"Caption"]); ///Console.WriteLine("MACAddress:{0}",w[i,"MACAddress"]); ///} ///} ///</code> ///</example> publicsealedclassWMI { privateArrayListmocs; privateStringDictionarynames;//用来存储属性名,便于忽略大小写查询正确名称。 ///<summary> ///信息集合数量 ///</summary> publicintCount { get{returnmocs.Count;} } ///<summary> ///获取指定属性值,注意某些结果可能是数组。 ///</summary> publicobjectthis[intindex,stringpropertyName] { get { try { stringtrueName=names[propertyName.Trim()];//以此可不区分大小写获得正确的属性名称。 Hashtableh=(Hashtable)mocs[index]; returnh[trueName]; } catch { returnnull; } } } ///<summary> ///返回所有属性名称。 ///</summary> ///<paramname="index"></param> ///<returns></returns> publicstring[]PropertyNames(intindex) { try { Hashtableh=(Hashtable)mocs[index]; string[]result=newstring[h.Keys.Count]; h.Keys.CopyTo(result,0); Array.Sort(result); returnresult; } catch { returnnull; } } ///<summary> ///返回测试信息。 ///</summary> ///<returns></returns> publicstringTest() { try { StringBuilderresult=newStringBuilder(1000); for(inti=0;i<Count;i++) { intj=0; foreach(stringsinPropertyNames(i)) { result.Append(string.Format("{0}:{1}={2}n",++j,s,this[i,s])); if(this[i,s]isArray) { Arrayv1=this[i,s]asArray; for(intx=0;x<v1.Length;x++) { result.Append("t"+v1.GetValue(x)+"n"); } } } result.Append("======WMI=======n"); } returnresult.ToString(); } catch { returnstring.Empty; } } ///<summary> ///构造函数 ///</summary> ///<paramname="path"></param> publicWMI(stringpath) { names=newStringDictionary(); mocs=newArrayList(); try { ManagementClasscimobject=newManagementClass(path); ManagementObjectCollectionmoc=cimobject.GetInstances(); boolok=false; foreach(ManagementObjectmoinmoc) { Hashtableo=newHashtable(); mocs.Add(o); foreach(PropertyDatapinmo.Properties) { o.Add(p.Name,p.Value); if(!ok)names.Add(p.Name,p.Name); } ok=true; mo.Dispose(); } moc.Dispose(); } catch(Exceptione) { thrownewException(e.Message); } } ///<summary> ///构造函数 ///</summary> ///<paramname="path"></param> publicWMI(WMIPathpath):this(path.ToString()) { } } } |