计算机vba,VBA 如何获取计算机硬件信息,一定要知道的技巧

本文介绍了如何利用VBA通过Windows管理规范(WMI)来提取计算机的CPU序列号、硬盘信息和网卡MAC地址。提供了具体的VBA函数代码,适用于基于Windows操作系统的环境。当遇到无法获取信息或错误时,可能是因为系统版本差异或WMI服务未启动。启动WMI服务的方法是在DOS环境下执行`net start winmgmt`命令。
摘要由CSDN通过智能技术生成

计算机信息是一个固定的内容,编程过程中会经常提取计算机信息来进行处理,本节介绍一下如何利用VBA来进行提取计算机信息。

869cc3ed22093ad4c499de9c861b4833.png

本示例基于Windows操作系统,苹果或Linux系统并不适用,一定分清楚。

下图为提取后的表格,简单举例三个信息,分别是CPU序列号,硬盘信息和网卡MAC地址。

aa650e9fb4aed746185721d377985193.png

根据新建一个GetObject("Winmgmts:")对象来对操作系统进行信息提取。

它是基于windows系统的系统管理工具WMI。

什么是WMI 呢?

全称为Windows管理规范,英文(Windows Management Instrumentation)

它是一项核心的 Windows 管理技术,用户可以使用 WMI 管理本地和远程计算机。

总之就是用来管理计算机的一个工具,既然是管理计算机的,那它对计算机有十足的了解,所以我们要通过WMI来获取计算机信息就找对了。

fc3c2e206b7318f4934e9475e7fecd7b.png

下面来看具体代码,一定要收藏。

获取CPU序列号函数:

Public Function GetCpu()

'CPU序列号

Dim cpuInfo, Soi, So, s As Integer, cpuArr()

cpuInfo = ""

Set Soi = GetObject("Winmgmts:").InstancesOf("Win32_Processor")

For Each So In Soi

cpuInfo = CStr(So.ProcessorId)

ReDim Preserve cpuArr(s)

cpuArr(s) = cpuInfo

s = s + 1

Next

If Not VBA.IsArray(cpuArr) Then

ReDim cpuArr(0)

cpuArr(0) = ""

End If

GetCpu = cpuArr

End Function

获取硬盘信息函数

Function getHde() As String

'硬盘信息

Dim HDid, moc, mo

Set moc = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive")

For Each mo In moc

HDid = HDid & mo.Model & VBA.vbCrLf

Next

getHde = VBA.Mid(HDid, 1, VBA.Len(HDid) - 1)

End Function

获取网卡MAC地址函数:

Function getMAC() As String

'网卡地址

Dim Wap, MAC

Set Wap = GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")

For Each MAC In Wap

If MAC.IPEnabled = True Then

getMAC = MAC.MacAddress

Exit For

End If

Next

End Function

以上函数都可以独立调用,调用方法如下:

Private Sub CommandButton1_Click()

Dim r As Range

Set r = Range("D2")

With r

.Value = GetCpu

.Offset(1, 0).Value = getHde

.Offset(2, 0).Value = getMAC

End With

End Sub

重点说一点,如果使用的时候没有返回任何正确信息,或者有报错提示,那么有两个可能。

一是计算机系统版本不同,由于不同时期的操作系统WMI也会有不同,所以找不到硬件信息。

二是WMI 服务最好启动,服务名为“winmgmt”。启动方法 DOS环境下 执行 net start winmgmt 命令重启。停止 WMI 服务使用:winmgmt /kill 或 net stop winmgmt ,最好不要停止服务。

如果想获取更多计算机信息可参考WMI对象使用方法,不过似乎就脱离了Excel VBA内容了。

欢迎关注、收藏

END

举报/反馈

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值