获取电脑软硬件信息
怎样在Windows系统中查看电脑的硬件信息

怎样在Windows系统中查看电脑的硬件信息在Windows系统中查看电脑的硬件信息在日常使用Windows系统的过程中,了解电脑的硬件信息对于维护电脑以及解决一些问题非常有帮助。
通过查看硬件信息,可以获得关于CPU、内存、存储等硬件设备的详细参数,以及驱动程序的状态等信息。
本文将介绍几种简单快捷的方法,帮助你在Windows系统中查看电脑的硬件信息。
方法一:使用设备管理器设备管理器是Windows系统中一个非常实用的工具,可以帮助我们查看和管理电脑的硬件设备。
下面将分步骤介绍如何使用设备管理器来查看硬件信息。
步骤一:打开设备管理器在Windows系统中,按下Win键 + X键,选择“设备管理器”选项,或者通过在任务栏的搜索框中输入“设备管理器”来打开。
步骤二:查看硬件信息在设备管理器中,可以看到各类硬件设备的列表。
展开每个设备类别,可以查看该类别下的所有设备。
在设备的属性对话框中,可以查看硬件设备的详细信息,包括设备状态、驱动程序版本、供应商信息等。
方法二:使用系统信息工具Windows系统提供了一个系统信息工具,可以显示关于电脑硬件、软件以及系统配置的详细信息。
下面是使用系统信息工具查看硬件信息的步骤。
步骤一:打开系统信息工具使用快捷键Win键 + R键,弹出运行对话框。
在对话框中输入“msinfo32”命令,然后点击“确定”按钮,即可打开系统信息工具。
步骤二:查看硬件信息在系统信息工具中,可以看到左侧的导航栏,包含了多个类别,如系统摘要、硬件资源和组件等。
点击其中的分类,右侧窗格中将显示该分类下的详细信息。
在硬件资源分类下,可以查看CPU、内存、硬盘、显示器、声卡等硬件设备的详细参数。
方法三:使用命令行工具对于熟悉命令行的用户来说,使用命令行工具也是一种快速获取硬件信息的方法。
下面介绍使用命令行工具来查看硬件信息的步骤。
步骤一:打开命令提示符在Windows系统中,按下Win键 + R键,弹出运行对话框。
如何查看电脑配置显卡

如何查看电脑配置显卡
要查看电脑的显卡配置,可以通过以下几种途径:
1. 使用操作系统提供的系统信息工具:
大多数操作系统都提供了系统信息工具,可以显示电脑硬件配置的详细信息。
例如,对于Windows操作系统,可以按下Win + R组合键打开运行窗口,输入“dxdiag”并点击“确定”,打开“DirectX诊断工具”。
在“显示”标签下,可以看到当前电脑的显卡信息,包括显卡型号、制造商和驱动程序版本等。
2. 使用显卡驱动程序提供的控制面板:
显卡的驱动程序一般都提供了自己的控制面板,可以查看和调整显卡的相关设置。
例如,对于NVIDIA显卡,可以在系统托盘中找到NVIDIA控制面板图标,点击打开后,在左侧的菜单中选择“系统信息”或“系统信息”等选项,就可以看到显卡的详细信息,包括型号、视频存储、驱动程序版本等。
3. 使用第三方软件:
还可以使用一些第三方软件来获取电脑的硬件信息,其中一款常用的工具是CPU-Z。
下载并安装CPU-Z后,打开软件,选择“图形”选项卡,就可以看到显卡的详细信息,包括型号、GPU频率、显存大小等。
不论使用哪种方法,都可以快速查看电脑的显卡配置。
如果需要更加详细的信息,可以参考显卡的官方网站或查看显卡的使用手册。
如何在Windows上查看电脑的硬件信息

如何在Windows上查看电脑的硬件信息在Windows上查看电脑的硬件信息Windows操作系统提供了多种方式来查看电脑的硬件信息,无论是为了了解电脑配置还是进行故障排查,都能够方便地通过以下几种途径来获取所需的信息。
1. 设备管理器设备管理器是Windows系统内置的工具,提供了查看和管理计算机硬件设备的功能。
要打开设备管理器,可以使用以下方法之一:- 右键点击“此电脑”(或“我的电脑”)图标,并选择“管理”,在打开的计算机管理窗口中,点击左侧的“设备管理器”;- 按下Win + X组合键,选择“设备管理器”。
在设备管理器中,硬件设备按照不同类别进行分类,例如显示适配器、声音、视频和游戏控制器、磁盘驱动器等。
展开每个类别可以查看相应设备的详细信息,如设备型号、供应商、驱动程序等。
2. 系统信息工具系统信息工具是Windows自带的一个工具,可以提供关于计算机硬件和软件的详细信息。
要打开系统信息工具,可以按住Win + R组合键,然后输入“msinfo32”并按下回车键。
在系统信息界面中,可以查看到关于计算机的各种信息,包括处理器、物理内存、主板、BIOS、硬盘、显示器等,还可以查看已安装的驱动程序、启动程序以及系统维护信息。
3. 控制面板控制面板是Windows操作系统提供的一个集中管理和设置系统的工具。
在控制面板中,可以找到许多选项和工具,其中包含了与硬件有关的信息。
要打开控制面板,可以按住Win + R组合键,然后输入“control”并按下回车键。
在控制面板中,可以选择“硬件和声音”分类,然后选择“设备和打印机”。
在这个界面中,可以查看到计算机连接的外部设备(如打印机、扫描仪等)以及相应设备的状态和属性信息。
4. 第三方软件除了Windows自带的工具外,还有许多第三方软件提供了更详细和全面的硬件信息。
这些软件通常提供了更丰富的功能和更友好的用户界面。
一些常见的硬件信息查看工具包括CPU-Z、GPU-Z、硬件监控工具等。
dmidecode-获取有关硬件方面的信息

Dmidecode命令详解Dmidecode 这款软件允许你在 Linux 系统下获取有关硬件方面的信息。
Dmidecode 遵循SMBIOS/DMI 标准,其输出的信息包括BIOS、系统、主板、处理器、内存、缓存等等。
偶发现这个工具很有用,就总结一下。
一、Dmidecode简介DMI (Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。
SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。
SMBIOS和DMI是由行业指导机构Desktop Management Task Force (DMTF)起草的开放性的技术标准,其中DMI设计适用于任何的平台和操作系统。
DMI充当了管理工具和系统层之间接口的角色。
它建立了标准的可管理系统更加方便了电脑厂商和用户对系统的了解。
DMI的主要组成部分是Management Information Format (MIF)数据库。
这个数据库包括了所有有关电脑系统和配件的信息。
通过DMI,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信息。
dmidecode的输出格式一般如下:Handle 0×0002 DMI type 2, 8 bytes Base Board Information Manufacturer:Intel Product Name: C440GX+ Version: 727281-0001 Serial Number: INCY92700942其中的前三行都称为记录头(recoce Header), 其中包括了:recode id(handle): DMI表中的记录标识符,这是唯一的,比如上例中的Handle 0×0002。
dmi type id: 记录的类型,譬如说:BIOS,Memory,上例是type 2,即”Base Board Information”recode size: DMI表中对应记录的大小,上例为8 bytes.(不包括文本信息,所有实际输出的内容比这个size要更大。
如何查看电脑硬件配置信息

如何查看电脑硬件配置信息?很多的朋友对电脑还不是很了解,比如上次有个朋友问我怎么看电脑配置,其实这个问题还是很简单的,只要是对电脑稍微熟悉一点的朋友就知道怎么看电脑配置,不过也有几种查看的方法,下面我就来介绍几种查看电脑配置的方法:1.下载一个电脑硬件测试软件,比如装一个优化大师,或者超级兔子都能看出电脑配置来。
2.还有什么办法看电脑配置呢,最直接的办法就看,点我的电脑-属性,属性下面有关于电脑配置的信息。
关于怎么看电脑配置,以上的3种方法都能做到,大家可以去试一下,当然还有装电脑的时候,把电脑的硬件都记下来也就知道电脑的具体配置了,还有拆开电脑,看一下里面的电脑所有配件也是可以的。
具体的怎么看电脑配置方法:1、右键“我的电脑”--属性(打开系统属性)--“硬件”选项下的“设备管理器”,里面就是电脑配置信息。
但请注意:这里的配置属性是可以通过特殊软件修改的,比如有些JS拿一些打磨品,修改为好的cpu,这种情况会出现二手电脑市场。
2、通过查看电脑的“系统信息”:a)开始/所有程序/附件/系统工具/系统信息;b)点击“开始”-->“运行”,在弹出的对话框中键入“cmd”进入系统命令行窗口,在命令行中输入“systeminfo”也可以查看系统信息;c)利用“DirectX诊断工具”:开始—运行—输入dxdiag,也可以看一些。
3、借助第三方软件,比如著名的硬件检测软件Everest ,它可以详细的显示出电脑硬件的信息,Everest 软件非常的强大,是电脑装机必备的一个软件,Everest 截图如下:其他还有一些比较好的电脑配置信息检测软件比如优化大师、鲁大师等可以用来帮助你了解怎么看电脑配置。
另外,专门检测cpu的软件:CPU-Z,专门检测显卡的软件:GPU-Z,专门检测硬盘的软件:HDTune,专门检测内存的软件:memtest,专门检测LCD显示器的软件:DisplayX,专家检测笔记本电脑电池的软件:BatteryMon 等等,大家可以下载这些软件来获取怎么看电脑配置的知识电脑配置单。
Windows系统中的电脑硬件信息查看方法

Windows系统中的电脑硬件信息查看方法在Windows操作系统中,了解电脑的硬件信息对于诊断问题、升级硬件或安装适当的驱动程序至关重要。
本文将介绍几种常用的方法,帮助您查看Windows系统中的电脑硬件信息。
方法一:使用系统信息工具查看硬件信息Windows系统自带了一个强大的系统信息工具,可以提供大量的硬件和软件信息。
下面是使用这个工具来查看硬件信息的步骤:1. 打开系统信息工具。
您可以通过按下Win + R键,在运行对话框中输入"msinfo32"命令,然后点击"确定"按钮来打开该工具。
2. 在系统信息窗口中,您可以看到各种硬件和软件信息的分类。
单击左侧面板上的各个分类,例如"系统摘要"、"组件"、"显示"、"存储"等,以查看详细信息。
3. 在每个分类下,您可以找到与硬件相关的详细信息。
例如,在"显示"分类下,您可以查看显示适配器的型号和驱动程序版本;在"存储"分类下,您可以了解到硬盘的型号、容量和分区信息等等。
方法二:使用设备管理器查看硬件信息设备管理器是Windows系统中的另一个实用工具,用于管理计算机上的设备驱动程序和硬件。
它也提供了查看硬件信息的功能。
下面是使用设备管理器来查看硬件信息的步骤:1. 打开设备管理器。
您可以通过按下Win + X键,在快速访问菜单中选择"设备管理器"来打开该工具。
2. 在设备管理器窗口中,您可以看到计算机上安装的各种硬件设备的列表。
展开每个设备分类后,您可以看到安装的具体设备的信息,例如显卡、声卡、网卡等。
3. 双击每个设备,可以进一步查看详细信息,例如设备的型号、供应商、驱动程序的版本等等。
方法三:使用系统自带工具查看硬件信息除了系统信息工具和设备管理器,Windows系统还提供了其他一些自带的工具来查看硬件信息。
查看电脑硬件信息
查看电脑硬件信息电脑硬件信息可以帮助用户了解自己电脑的性能和配置情况,从而更好地使用和维护电脑。
下面介绍几种常用的查看电脑硬件信息的方法。
一、系统信息在 Windows 操作系统中,可以通过系统信息工具查看电脑的硬件信息。
具体操作如下:1. 打开“开始菜单”,选择“运行”。
2. 在“运行”输入框中输入“msinfo32”,然后点击“确定”。
3. 在系统信息窗口中,可以查看电脑的处理器、内存、操作系统、主板、BIOS、硬盘、显示器等硬件信息。
二、设备管理器设备管理器是 Windows 操作系统自带的工具,可以列出电脑上所有的硬件设备,用户可以通过它查看硬件的型号和驱动版本等详细信息。
具体操作如下:1. 打开“开始菜单”,选择“计算机”。
2. 在右侧窗口中点击“系统属性”,然后点击“设备管理器”。
3. 在设备管理器窗口中,可以查看电脑上所有硬件设备的信息,包括处理器、内存、显卡、网卡、声卡、键盘、鼠标等。
三、CPU-ZCPU-Z 是一款免费的硬件信息检测工具,可以查看电脑的处理器、主板、内存、显卡等硬件信息。
具体操作如下:1. 下载并安装 CPU-Z 工具。
2. 打开 CPU-Z 工具,可以看到电脑的处理器、主板、内存、显卡等硬件信息。
四、GPU-ZGPU-Z 是一款免费的显卡信息检测工具,可以查看电脑显卡的型号、驱动版本、显存大小、温度等详细信息。
具体操作如下:1. 下载并安装 GPU-Z 工具。
2. 打开 GPU-Z 工具,可以看到电脑显卡的型号、驱动版本、显存大小、温度等详细信息。
五、AIDA64AIDA64 是一款全能的硬件信息检测工具,可以查看电脑的处理器、主板、内存、显卡、硬盘、显示器等硬件信息。
具体操作如下:1. 下载并安装 AIDA64 工具。
2. 打开 AIDA64 工具,可以看到电脑的处理器、主板、内存、显卡、硬盘、显示器等硬件信息。
以上就是几种查看电脑硬件信息的方法,用户可以根据自己的需求选择适合自己的工具。
用vbs实现获取电脑硬件信息的脚本_最新版
⽤vbs实现获取电脑硬件信息的脚本_最新版代码⼀:'*******************************************************************************************'Version:3.1' 调整错误处理⽅法,错误信息输出到LogFile⽂件,可以查看扫描失败原因' 如果出现“RPC 服务器不可⽤”错误,是因为远程主机没开机' 如果出现“RPC 服务器不可⽤”之外的错误,可能是由于正在运⾏的程序造成,请你把此信息告诉我' 重启后再次扫描就可以排除⾮“RPC 服务器不可⽤。
”的错误' 如果扫描到的硬件信息为空,应该是驱动问题(或BIOS不完善),请⾃⾏解决'Version:3.0' 增加输出BIOS的发⾏⽇期,和主板信息放在⼀起'Version:2.9' 修正所有GetInfo过程遇错的处理⽅法,避免返回的数组上限不符合输出要求导致脚本报错。
' 之所以为出现这种情况,是因为Win32类检索不到硬件或连接到Win32类失败;' 原来判断是否出现Err,忽略了检索不到硬件的情况(连接成功⽆Err,Count为0)' 检索不到硬件多数是因为驱动没装好'Version:2.8' 增加GetIDEProtocol过程,获取IDE控制器使⽤的协议,只是增加了代码,没有调⽤' 计划增加检索其它存储器控制器的过程'Version:2.7' 检索硬盘/显卡/⽹卡/声卡的过程增加 DeviceID 属性(设备标识符)' 此属性不被输出,⽤于脚本内部判断'Version:2.6' 原来输出搜索到的第⼀个硬盘' 改为输出搜索到的第⼀个InterfaceType属性为IDE的硬盘的信息'Version:2.5' 增加Sort过程,排序硬件信息'Version:2.4' 调整输出信息的分类,同类信息尽可能的只使⽤⼀个逗号分隔,以便导⼊xls后在同⼀列' 查询到的硬件信息如果是空或0,有可能是相关驱动不完善或未定义此信息,也可能是未安装驱动' 因为WMI查询就代表了系统知道这些硬件的详细信息,查不到信息就是系统不知道' 系统不知道硬件的详细信息,代表着性能可能有所缺失,建议找个好驱动安装' 值得注意的是主板驱动' (为了更容易理解,此版本的升级信息被编辑过)'Version:2.3' 取消2.2版增加输出的硬盘接⼝类型' 由于STAT也归于IDE接⼝,这会导致误解' PS:脚本只输出搜索到的第⼀个硬盘'Version:2.2' GetMemoryInfo过程增加MemoryType、FormFactor、TypeDetail三个属性' 输出增加内存类型、封装类型' 输出增加硬盘容量、接⼝类型'Version:2.1' GetOSInfo过程增加去掉Caption属性中带有的逗号“,”的代码' 原因:在检测2003系统时,读取到的Caption属性,带有逗号“,”' 这会影响输出,因为输出是以逗号“,”为分隔符的'Version:2.0 B5发布版' GetNetworkInfo过程改为使⽤MACAddress属性⾮空、' Manufacturer属性⾮"Microsoft"判断⽹卡'Version:2.0 Beta4' GetNetworkInfo过程使⽤NetConnectionStatus属性判断⽹络适配器' NetConnectionStatus属性表明连接状态(2000系统不⽀持此属性)' 物理⽹络适配器才具有此状态(包括停⽤状态在内)'Version:2.0 Beta3' GetNetworkInfo过程增加⼀个判断' 忽略读取IPAddress(0)时会产⽣Err类型数据的适配器(对战平台)'Version:2.0 Beta2' GetOSInfo过程原来使⽤的Name、ServicePackMajorVersion属性' 改为使⽤Caption、CSDVersion属性' 所有GetInfo过程增加错误处理代码,避免正在扫描的时候' 脚本遇到运⾏时错误导致脚本退出'Version:2.0 Beta1' 增加扫描失败记录,再次运⾏脚本只读取失败记录,忽略配置信息'Version:1.1' GetNetworkInfo过程增加⼀个判断' 忽略NetConnectionID属性(接⼝名称)为空的适配器'Version:1.0' 初始版本''E-Mail:lzmyst@'你可以任意编辑、引⽤脚本的全部或部分代码'转贴、引⽤脚本的全部或部分代码请保留版权'**************************************'********************************说明开始*************************************'Input格式:起始IP-数量=⽤户名=密码;起始计算机名-数量=⽤户名=密码' 多个配置项⽤“;”隔开'例:192.168.0.1-10指明IP范围为192.168.0.1~192.168.0.10,⽀持跨⽹段'例:PC001-10指明范围为PC001~PC010(计算机名可以包含-号)'与指定格式不相同的,默认为单IP[计算机名],也可以在"未扫描的计算机.txt"⾥配置'"硬件信息.txt"是以逗号分隔各项硬件信息,你需要⾃⼰导⼊XLS整理、精简'未扫描到的计算机,会把机号、⽤户名、密码保存到"未扫描的计算机.txt"'再次运⾏脚本将只读取"未扫描的计算机.txt"⾥的信息(如果存在并且⼤⼩不为0)'********************************说明结束*************************************Dim Input, InfoOutFile, LogFile '请按格式给Input赋值'Input = "pc021=administrator=cylslynetbar"Input = "PC001-109=administrator=cylslynetbar;pc110-85=administrator=LYjfnetbaradmin"InfoOutFile = "硬件信息.txt"LogFile = "未扫描的计算机.txt"Redim arrConfig(0)Dim WshShell, FSO, intCount1, intCount2intCount1 = 0intCount2 = 0Set WshShell = WScript.CreateObject("WScript.Shell")Set FSO = WScript.Createobject("Scripting.Filesystemobject")ReadConfigWshShell.Popup "扫描过程会很慢,请耐⼼等待,完成后会给出提⽰",,"扫描开始"LinkRemoteServer arrConfigDim LenNum1, LenNum2If intCount1 > intCount2 ThenLenNum1 = 0LenNum2 = Len(intCount1) - Len(intCount2)ElseLenNum1 = Len(intCount2) - Len(intCount1)LenNum2 = 0End IfSort InfoOutFileWshShell.Popup "扫描结果:" & _vbCrLf & vbTab & "扫描成功:" & Space(LenNum1) & intCount1 & " 台" & _vbCrLf & vbTab & "扫描失败:" & Space(LenNum2) & intCount2 & " 台" & _vbCrLf & "扫描失败的电脑已做记录,再次运⾏脚本只扫描记录⾥的电脑",,"扫描完成" Function ReadConfigDim objMatches, objMatche,objLogFile, arrLog, intUBarrConfigIf FSO.FileExists(LogFile) ThenIf FSO.GetFile(LogFile).Size = 0 ThenSet objMatches = GetMatche("([^;=]+)=([^;=]+)=([^;=]+)", Input)For Each objMatche In objMatchesGetConfig objMatche.SubMatches(0), objMatche.SubMatches(1), objMatche.SubMatches(2) NextIf objMatches.Count = 0 ThenMsgbox "配置信息格式不正确,请修改"WScript.QuitEnd IfElseSet objLogFile = FSO.OpenTextFile(LogFile)Do Until objLogFile.AtEndOfStreamarrLog = Split(objLogFile.ReadLine,"=")intUBarrConfig = ((Ubound(arrConfig)+1)\3+1)*3-1Redim Preserve arrConfig(intUBarrConfig)arrConfig(intUBarrConfig-2) = arrLog(0)arrConfig(intUBarrConfig-1) = arrLog(1)arrConfig(intUBarrConfig-0) = arrLog(2)LoopEnd IfElseSet objMatches = GetMatche("([^;=]+)=([^;=]+)=([^;=]+)", Input)For Each objMatche In objMatchesGetConfig objMatche.SubMatches(0), objMatche.SubMatches(1), objMatche.SubMatches(2)WScript.QuitEnd IfEnd IfEnd Function'*********************************************************************************'⽬的:连接到远程主机的WMI命名空间'输⼊:arrArray数组,包含有计算机名[IP]、⽤户名、密码'调⽤:LinkServer过程' 如果返回SWbemLocator对象ConnectServer⽅法的实例,调⽤OutInfo过程' 如果返回Err信息(字符串类型),输出计算机名[IP]、⽤户名、密码及错误信息到LogFile⽂件' OutInfo过程' 如果返回Err信息(字符串类型)输出计算机名[IP]、⽤户名、密码及错误信息到LogFile⽂件'传递:SWbemLocator对象ConnectServer⽅法的实例传递给OutInfo过程' 计算机名[IP]、命名空间、⽤户名、密码传递给LinkServer过程'*********************************************************************************Function LinkRemoteServer(arrArray)Dim objErrLog, E, objLinkServer, objConnection, objWbemLocator, objErrSet objWbemLocator = CreateObject("WbemScripting.SWbemLocator")Set objErrLog = FSO.CreateTextFile(LogFile,True)For E = 0 To Ubound(arrArray) Step 3Set objLinkServer = LinkServer(arrConfig(E),"root\cimv2",arrConfig(E+1),arrConfig(E+2))If Err ThenobjErrLog.Writeline arrArray(E) & "=" & arrArray(E+1) & "=" & arrArray(E+2) & "=" & _"错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By LinkServer Function"intCount2 = intCount2 + 1Err.ClearElseobjErr = OutInfo(objLinkServer)If Vartype(objErr) = 8 ThenobjErrLog.Writeline arrArray(E) & "=" & arrArray(E+1) & "=" & arrArray(E+2) & "=" & objErrintCount2 = intCount2 + 1End IfEnd IfNextEnd Function'******************************************************'⽬的:输出硬件信息'输⼊:SWbemLocator对象ConnectServer⽅法的实例'调⽤:获取硬件信息的GetXXXInfo过程'传递:SWbemLocator对象ConnectServer⽅法的实例'返回:所有调⽤的GetInfo过程都未返回Err对象,则返回True' 某个GetInfo过程返回Err对象,则返回False'******************************************************Function OutInfo(objRemote)Dim OutFile, arrInfo, strOutInfo, Tmp, AIf FSO.FileExists(InfoOutFile) ThenSet OutFile = FSO.OpenTextFile(InfoOutFile,8)ElseSet OutFile = FSO.CreateTextFile(InfoOutFile)OutFile.Writeline "计算机名,系统(初装⽇期),主板型号(⼚商)(发⾏⽇期),CPU型号(接⼝类型),外频,L2容量(速度)," & _ "内存总量,内存速度(位置),内存类型(封装类型),硬盘型号(容量),显卡型号(显存),⽹卡,IP/MAC"End If'系统arrInfo = GetOSInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfstrOutInfo = arrInfo(0) & "," & arrInfo(1) & "(" & arrInfo(2) & "),"'主板arrInfo = GetBoardInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfstrOutInfo = strOutInfo & arrInfo(0) & "(" & arrInfo(1) & ")"'BIOSarrInfo = GetBIOSInfo(objRemote)End IfstrOutInfo = strOutInfo & "(" & arrInfo(2) & "),"'CPUarrInfo = GetCPUInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfstrOutInfo = strOutInfo & arrInfo(1) & "(" & arrInfo(8) & ")," & arrInfo(4) & "," & _arrInfo(6) & "(" & arrInfo(7) & "),"'内存arrInfo = GetMemoryInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfTmp = 0For A = 1 To Ubound(arrInfo) Step 6Tmp = Tmp + Cint(arrInfo(A))NextstrOutInfo = strOutInfo & arrInfo(0) & "条,共" & Tmp & "M,"Tmp = ""For A = 2 To Ubound(arrInfo) Step 6If A = Ubound(arrInfo) - 4 ThenTmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & "),"ElseTmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & ") "End IfNextstrOutInfo = strOutInfo & TmpTmp = ""For A = 4 To Ubound(arrInfo) Step 6If A = Ubound(arrInfo) - 2 ThenTmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & "),"ElseTmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & ") "End IfNextstrOutInfo = strOutInfo & Tmp'硬盘Tmp = ""arrInfo = GetDiskInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfFor A = 1 To Ubound(arrInfo) Step 5If arrInfo(A+1) = "IDE" ThenTmp = arrInfo(A) & "(" & arrInfo(A+2) & "G),"Exit ForEnd IfNextIf Tmp = "" ThenstrOutInfo = strOutInfo & "硬盘型号未检索到,"ElsestrOutInfo = strOutInfo & TmpEnd If'显卡arrInfo = GetVideoInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfstrOutInfo = strOutInfo & arrInfo(0) & "(" & arrInfo(1) & "M),"'⽹卡arrInfo = GetNetworkInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfstrOutInfo = strOutInfo & arrInfo(1) & "," & arrInfo(2) & Space(17-Len(arrInfo(2))) & arrInfo(3) '输出OutFile.Writeline strOutInfo'*********************************************************'⽬的:连接到远程主机的WMI命名空间'输⼊:strComputer:远程主机的计算机名或IP' strNamespace:命令空间' strUserName:⽤户名' strPassword:密码'返回:连接成功,返回SWbemLocator类连接远程主机后的对象的实例' 连接失败,返回错误对象'*********************************************************Function LinkServer(strComputer,strNamespace,strUserName,strPassword) Dim objWbemLocatorSet objWbemLocator = CreateObject("WbemScripting.SWbemLocator")Dim objConnectionOn Error Resume NextSet objConnection = objwbemLocator.ConnectServer _(strComputer, strNamespace, strUserName, strPassword)If Err ThenSet LinkServer = ErrExit FunctionEnd IfOn Error Goto 0objConnection.Security_.ImpersonationLevel = 3Set LinkServer = objConnectionEnd Function'******************************************'⽬的:正则表达式'输⼊:strPatrn:正则表达式模式' strString:要执⾏正则表达式的字符串'返回:Match对象'******************************************Function GetMatche(strPatrn, strString)Dim RegExSet RegEx = New RegexpRegEx.Global = TrueRegEx.IgnoreCase =TrueRegEx.Pattern = strPatrnSet GetMatche = RegEx.Execute(strString)End Function'***************************************'⽬的:2、8、16进制转10进制'输⼊:strString:2、8、16进制数' intNum:进制(2|8|16)'返回:10进制数'***************************************Function ChangeToDecimal(strString, intNum)ChangeToDecimal = 0If Isnull(strString) Then ChangeToDecimal = 0 : Exit FunctionDim A, MFor A = 1 To Len(strString)M = LCase(Mid(strString, A, 1))Select Case MCase "a" :M = 10Case "b" :M = 11Case "c" :M = 12Case "d" :M = 13Case "e" :M = 14Case "f" :M = 15End SelectChangeToDecimal = ChangeToDecimal + M * intNum^(Len(strString)-A) NextEnd Function'*******************************************************'⽬的:分析配置信息'输⼊:strIP, strUser, strPW:IP[计算机名]、账户、密码'返回:⽆,直接把分析结果保存在数组'*******************************************************Function GetConfig(strIP, strUser, strPW)Dim Matches, SubMatcheDim IP_1, IP_2, IP_3, IP_4, intStar, intEnd, A, intConfigNumIf Matches.Count = 1 ThenSet SubMatche = Matches(0)intStar = Cint(SubMatche.SubMatches(3))intEnd = intStar + Cint(SubMatche.SubMatches(4)) - 1For A = intStar To intEndIP_4 = A Mod 256IP_3 = (Cint(SubMatche.SubMatches(2))+ A\256) Mod 256IP_2 = (Cint(SubMatche.SubMatches(1)) + (Cint(SubMatche.SubMatches(2))+ A\256)\256) Mod 256 IP_1 = Cint(SubMatche.SubMatches(0)) + (Cint(SubMatche.SubMatches(1)) + _(Cint(SubMatche.SubMatches(2))+ A\256)\256)\256If IP_1 > 223 Or IP_1 = 127 Or IP_1 < 1 ThenMsgbox strIP & "包含的" & IP_1 & "." & IP_2 & "." & IP_3 & "." & IP_4 & _"不是有效IP,此IP及之后的IP已被丢弃"Exit FunctionEnd IfintConfigNum = (Ubound(arrConfig)+1)\3 + 1Redim Preserve arrConfig(intConfigNum*3-1)arrConfig(intConfigNum*3-3) = IP_1 & "." & IP_2 & "." & IP_3 & "." & IP_4arrConfig(intConfigNum*3-2) = strUserarrConfig(intConfigNum*3-1) = strPWNextExit FunctionEnd IfDim ComputerName_Patrn, Prefix, intLenComputerName_Patrn = "([\S]+[^0-9]{1})([0]*[\d]+)-([\d]+)"Set Matches = GetMatche(ComputerName_Patrn, strIP)If Matches.Count = 1 ThenSet SubMatche = Matches(0)Prefix = SubMatche.SubMatches(0)intLen = Len(SubMatche.SubMatches(1))intStar = Cint(SubMatche.SubMatches(1))intEnd = intStar + Cint(SubMatche.SubMatches(2)) - 1For A = intStar To intEndintConfigNum = (Ubound(arrConfig)+1)\3 + 1Redim Preserve arrConfig(intConfigNum*3-1)If Len(A) < intLen ThenarrConfig(intConfigNum*3-3) = Prefix & String(intLen-Len(A),"0") & AElsearrConfig(intConfigNum*3-3) = Prefix & AEnd IfarrConfig(intConfigNum*3-2) = strUserarrConfig(intConfigNum*3-1) = strPWNextExit FunctionEnd IfintConfigNum = (Ubound(arrConfig)+1)\3 + 1Redim Preserve arrConfig(intConfigNum*3-1)arrConfig(intConfigNum*3-3) = strIParrConfig(intConfigNum*3-2) = strUserarrConfig(intConfigNum*3-1) = strPWEnd Function'***********************************************************'⽬的:获取操作系统信息'输⼊:SWbemLocator对象ConnectServer⽅法连接到远程主机的实例'返回:数组,上限为2' 取操作系统的3种属性:' 0 1 2' CSName Caption&CSDVersion InstallDate' 计算机名系统名&SP版本初装⽇期'LastBootUpTime属性表⽰系统最近⼀次的启动时间'***********************************************************Function GetOSInfo(objConnection)Dim arrOSInfoDim objSystemInfos, objSystemInfo, arrOS(2)Dim TmpOn Error Resume NextSet objSystemInfos = objConnection.InstancesOf("win32_operatingsystem")If Err ThenGetOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetOSInfo Function"Err.ClearTmp = objSystemInfos.CountIf Err ThenGetOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetOSInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfFor Each objSystemInfo In objSystemInfosarrOS(0) = objSystemInfo.CSNamearrOS(1) = Replace(objSystemInfo.Caption,",","") & " " & objSystemInfo.CSDVersion arrOS(2) = Mid(CStr(objSystemInfo.InstallDate),1,4) & "-" & _Mid(CStr(objSystemInfo.InstallDate),5,2) & "-" & _Mid(CStr(objSystemInfo.InstallDate),7,2) '& ", " & _'Mid(CStr(objSystemInfo.InstallDate),9,2) & ":" & _'Mid(CStr(objSystemInfo.InstallDate),11,2) & ":" & _'Mid(CStr(objSystemInfo.InstallDate),13,2)NextIf Err ThenGetOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetOSInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfGetOSInfo = arrOSOn Error Goto 0End Function'***********************************************************'⽬的:获取主板信息'输⼊:SWbemLocator对象ConnectServer⽅法连接到远程主机的实例'返回:数组,上限为2' 取主板的3种属性:' 0 1 2' Product Manufacturer Version' 型号⼚商版本'***********************************************************Function GetBoardInfo(objConnection)Dim objboards, objboard, arrBoard(2)Dim TmpOn Error Resume NextSet objboards = objConnection.InstancesOf("Win32_BaseBoard")If Err ThenGetBoardInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBoardInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfTmp = objboards.CountIf Err ThenGetBoardInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBoardInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfFor each objboard In objboardsarrBoard(0) = Replace(Trim(objboard.Product),",","") '型号arrBoard(1) = Replace(Trim(objboard.Manufacturer),",","") '⼚商arrBoard(2) = Replace(Trim(objboard.Version),",","") '版本NextIf Err ThenGetBoardInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBoardInfo Function"Err.ClearOn Error Goto 0On Error Goto 0End Function'***********************************************************'⽬的:获取BIOS信息'输⼊:SWbemLocator对象ConnectServer⽅法连接到远程主机的实例'返回:数组,上限为2' 取BIOS的2种属性:' 0 1 2' Manufacturer SMBIOSBIOSVersion ReleaseDate' ⼚商版本发⾏⽇期'***********************************************************Function GetBIOSInfo(objConnection)Dim objBIOSs, objBIOS, arrBIOS(2)Dim TmpOn Error Resume NextSet objBIOSs = objConnection.InstancesOf("Win32_BIOS")If Err ThenGetBIOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBIOSInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfTmp = objBIOSs.CountIf Err ThenGetBIOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBIOSInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfFor each objBIOS In objBIOSsIf Isnull(objBIOS.Manufacturer) ThenarrBIOS(0) = "BIOS⼚商不存在" '请检查主板驱动是否完善或未安装,或BIOS不完善需要刷BIOSElsearrBIOS(0) = Replace(Trim(objBIOS.Manufacturer),",","")End IfIf Isnull(objBIOS.SMBIOSBIOSVersion) ThenarrBIOS(1) = "由SMBIOS汇报的BIOS版本不存在" '请检查主板驱动是否完善或未安装,或BIOS不完善需要刷BIOS ElsearrBIOS(1) = Replace(Trim(objBIOS.SMBIOSBIOSVersion),",","")End IfIf Isnull(objBIOS.ReleaseDate) ThenarrBIOS(2) = "BIOS发⾏⽇期未知" '请检查主板驱动是否完善或未安装,或BIOS不完善需要刷BIOSElsearrBIOS(2) = Left(Cstr(objBIOS.ReleaseDate),8)End IfNextIf Err ThenGetBIOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBIOSInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfGetBIOSInfo = arrBIOSOn Error Goto 0End Function'************************************************************'⽬的:获取CPU信息'输⼊:SWbemLocator对象ConnectServer⽅法连接到远程主机的实例'返回:数组,上限为8' 取CPU的9种属性:' 0 1 2 3 4' Name MaxClockSpeed CurrentVoltage ExtClock' 核⼼数量型号主频电压外频' 5 6 7 8' AddressWidth L2CacheSize L2CacheSpeed SocketDesignationDim objCPU, objCPUs, arrCPU(8)On Error Resume NextSet objCPUs = objConnection.InstancesOf("win32_processor")If Err ThenGetCPUInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetCPUInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfarrCPU(0) = objCPUs.Count '每个CPU核⼼都返回⼀个实例,实例数量即为CPU核⼼数量 If Err ThenGetCPUInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetCPUInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfFor each objCPU In objCPUsarrCPU(1) = Replace(Trim(),",","") '型号arrCPU(2) = objCPU.MaxClockSpeed '主频arrCPU(3) = ChangeToDecimal(objCPU.CurrentVoltage, 16)/10 '电压arrCPU(4) = objCPU.ExtClock '外频arrCPU(5) = objCPU.AddressWidth '位宽arrCPU(6) = objCPU.L2CacheSize 'L2容量arrCPU(7) = objCPU.L2CacheSpeed 'L2频率arrCPU(8) = objCPU.SocketDesignation '插槽类型NextIf Err ThenGetCPUInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetCPUInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfGetCPUInfo = arrCPUOn Error Goto 0End Function'********************************************************************************************'⽬的:获取内存信息'输⼊:SWbemLocator对象的ConnectServer⽅法连接到远程主机的实例'返回:数组,上限为(内存条的数量*6),0=内存条的数量' 取内存的6种属性:' 1 2 3 4 5 6' capacity Speed DeviceLocator MemoryType FormFactor TypeDetail' 容量速度插槽位置内存类型封装(接⼝)类型详细类型-系统应⽤类型'DeviceLocator属性表⽰这个内存所在的插槽' ⼀般是字符加数字,数字相当于主板上内存插槽的物理位置'******************************************************************************************** Function GetMemoryInfo(objConnection)Dim objMemorys, objMemory, NumRedim arrMemory(0)On Error Resume NextSet objMemorys = objConnection.InstancesOf("Win32_PhysicalMemory")If Err ThenGetMemoryInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetMemoryInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfarrMemory(0) = objMemorys.Count '每条内存都返回⼀个实例,实例项数即内存条数量 If Err ThenGetMemoryInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetMemoryInfo Function"Err.ClearOn Error Goto 0For Each objMemory In objMemorysNum = Num + 1Redim Preserve arrMemory(Num*6)arrMemory(Num*6-5) = objMemory.capacity/1048576 '容量(M)arrMemory(Num*6-4) = objMemory.Speed '速度(MHz)arrMemory(Num*6-3) = objMemory.DeviceLocator '插槽位置Select Case objMemory.MemoryType '内存类型,Case 0 :arrMemory(Num*6-2) = "Unknown" '未知Case 1 :arrMemory(Num*6-2) = "Other" '其它Case 2 :arrMemory(Num*6-2) = "DRAM" '动态随机存储器Case 3 :arrMemory(Num*6-2) = "Synchronous DRAM" '同步动态随机存储器Case 4 :arrMemory(Num*6-2) = "Cache DRAM" '同步缓存动态随机存储器,三菱专利技术,插⼊⼀个SRAM作为⼆级CACHE使⽤ Case 5 :arrMemory(Num*6-2) = "EDO" '外扩充数据模式存储器(Extended Date Out)Case 6 :arrMemory(Num*6-2) = "EDRAM" '增强型动态随机存储器,在DRAM中包括了⼀⼩部分的SRAM(Enhanced DRAM) Case 7 :arrMemory(Num*6-2) = "VRAM" '视频存储器,专门为图形应⽤优化的存储器(Video DRAM)Case 8 :arrMemory(Num*6-2) = "SRAM" '静态随机存储器Case 9 :arrMemory(Num*6-2) = "RAM" '随机存储器Case 10 :arrMemory(Num*6-2) = "ROM" '只读存储器Case 11 :arrMemory(Num*6-2) = "Flash" '闪速存储器,简称闪存(Flash Memory),属于EEPROM(电擦除可编程只读存储器)类型 Case 12 :arrMemory(Num*6-2) = "EEPROM" '电可擦写可编程只读存储器Case 13 :arrMemory(Num*6-2) = "FEPROM" 'F什么可擦写可编程只读存储器Case 14 :arrMemory(Num*6-2) = "EPROM" '可擦写可编程只读存储器(Erasable Programmable ROM)Case 15 :arrMemory(Num*6-2) = "CDRAM" '同步缓存动态随机存储器,即Cache DRAMCase 16 :arrMemory(Num*6-2) = "3DRAM" '3维视频处理器专⽤存储器(3 DIMESION RAM)Case 17 :arrMemory(Num*6-2) = "SDRAM" '同步动态随机存储器,即Synchronous DRAMCase 18 :arrMemory(Num*6-2) = "SGRAM" '单⼝随机存储器(Signal RAM)Case 19 :arrMemory(Num*6-2) = "RDRAM" '总线式动态随机存储器Case 20 :arrMemory(Num*6-2) = "DDR" '双倍速率同步动态随机存储器,⼀个时钟周期内传输⼆次数据Case 21 :arrMemory(Num*6-2) = "DDR-2" '双倍速率同步动态随机存储器2,⼀个时钟周期内传输⼆次数据,4bit数据预读取能⼒ End SelectSelect Case objMemory.FormFactor '封装类型(接⼝类型)Case 0 :arrMemory(Num*6-1) = "Unknown" '未知Case 1 :arrMemory(Num*6-1) = "Other" '其它Case 2 :arrMemory(Num*6-1) = "SIP" '单列直插式封装Case 3 :arrMemory(Num*6-1) = "DIP" '双列直插式封装(Dual ln-line Package)Case 4 :arrMemory(Num*6-1) = "ZIP" '零插拔⼒封装(Zero Insertion Package)Case 5 :arrMemory(Num*6-1) = "SOJ" '⼩尺⼨(⼩外形)J形引脚封装(Small Out-Line J-Lead)Case 6 :arrMemory(Num*6-1) = "Proprietary" '专有封装(有专利权的)Case 7 :arrMemory(Num*6-1) = "SIMM" '单列直插式封装(Single Inline Memory Module)Case 8 :arrMemory(Num*6-1) = "DIMM" '双列直插式封装(Dual Inline Memory Module)Case 9 :arrMemory(Num*6-1) = "TSOP" '薄型⼩尺⼨封装(Thin Small Outline Package)Case 10 :arrMemory(Num*6-1) = "PGA" '陈列引脚封装。
C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号)
For Each mo As ManagementObject In moc
strID = mo.Properties("SerialNumber").Value.ToString()
Exit For
Next
textBox1.Text += "BIOS ID:" + strID
电脑3:硬盘 ID:4a353756354d5939202020202020202020202020
电脑4:硬盘 ID:0637J2FW508014
•获取BIOS编号:
Dim mc As New ManagementClass("Win32_BIOS")
Dim moc As ManagementObjectCollection = mc.GetInstances()
For Each mo As ManagementObject In moc
For Each pd As PropertyData In mo.Properties
textBox1.Text = "/r/n" + + "/t"
If pd.Value <> Nothing Then
通过Win32_BaseBoard获取主板信息,但不是所有的主板都有编号,或者说不是能获取所有系统主板的编号。
通过Win32_PhysicalMedia获取硬盘编号应该没有问题。但网上说可以通过Win32_DiskDrive获取,其实所得信息根本不包含SerialNumber。
通过Win32_BIOS获取BIOS信息,基本和获取主板信息差不多。就是说:不是所有的主板BIOS信息都有编号。
Qt获取计算机硬件信息(主板唯一识别码)
Qt获取计算机硬件信息(主板唯⼀识别码)Windows下获取CPU、主板、硬盘等电脑相关硬件的办法很多,可以直接调⽤Windows API的⽅式实现,不过代码都很复杂,不容易理解。
这⾥使⽤⼀种很简便的⽅式来查询我们需要的信息,先了解⼀个东西“wmic”(Windows Management Instrumentation,Windows管理⼯具),提供了从命令⾏接⼝和批命令脚本执⾏系统管理的⽀持。
可以打开cmd在其中输⼊如下命令,获取相关的信息。
//获取cpu名称:wmic cpu get Name//获取cpu核⼼数:wmic cpu get NumberOfCores//获取cpu线程数:wmic cpu get NumberOfLogicalProcessors//查询cpu***:wmic cpu get processorid//查询主板***:wmic baseboard get serialnumber//查询BIOS***:wmic bios get serialnumber//查看硬盘:wmic diskdrive get serialnumber//获取主板序唯⼀标识:wmic csproduct get uuid//查询⽹卡连接唯⼀标识:Wmic Path Win32_NetworkAdapter get GUID//查询⽹卡物理地址:Wmic Path Win32_NetworkAdapter get NetEnabled//查询⽹卡是否启⽤:Wmic Path Win32_NetworkAdapter get NetEnabled//查询⽹卡是否为物理适配器:Wmic Path Win32_NetworkAdapter get PhysicalAdapter//查询⽹卡索引号:Wmic Path Win32_NetworkAdapter get IndexQt获取//程序中⽤到的头⽂件#include <QProcess>QString getInfo(const QString &cmd){QProcess p; //启动外部程序p.start(cmd); //⼀体式启动,不分离,主程序退出则启动程序退出,使⽤close关闭//p.startDetached(cmd) //分离式启动,主程序退出后,外部程序继续运⾏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/// <summary>
/// 枚举win32 api
/// </summary>
public enum HardwareEnum
{
// 硬件
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_POTSModemT oSerialPort, // MODEM 端口
Win32_DesktopMonitor, // 显示器
Win32_DisplayConfiguration, // 显卡
Win32_DisplayControllerConfiguration, // 显卡设置
Win32_VideoController, // 显卡细节。
Win32_VideoSettings, // 显卡支持的显示模式。
// 操作系统
Win32_TimeZone, // 时区
Win32_SystemDriver, // 驱动程序
Win32_DiskPartition, // 磁盘分区
Win32_LogicalDisk, // 逻辑磁盘
Win32_LogicalDiskT oPartition, // 逻辑磁盘所在分区及始末位置。
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, // 已安装的网络协议
Win32_PnPEntity,//all device
}
/// <summary>
/// WMI取硬件信息
/// </summary>
/// <param name="hardType"></param>
/// <param name="propKey"></param>
/// <returns></returns>
public static string[] MulGetHardwareInfo(HardwareEnum hardType, string propKey) {
List<string> strs = new List<string>();
try
{
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + hardType))
{
var hardInfos = searcher.Get();
foreach (var hardInfo in hardInfos)
{
if (hardInfo.Properties[propKey].Value != null)
{
if (hardInfo.Properties[propKey].Value.ToString().Contains("COM"))
{
strs.Add(hardInfo.Properties[propKey].Value.T oString());
}
}
}
searcher.Dispose();
}
return strs.ToArray();
}
catch
{
return null;
}
finally
{ strs = null; }
}。