Public Function GetwmiProcessorID() As String
' 使用 Windows WMI 组件来识别 CPU ID
' Getcpuid.dll 获取的id只有8位, 而使用 Microsoft WMI Scripting Library 可以识别到16 位,
' 下面简短的代码返回的是16位16进制的字符串。
' 首先必须引用 Microsoft WMI Scripting Library
Dim cpuSet As SWbemObjectSet
Dim cpu As SWbemObject
Set cpuSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
InstancesOf("Win32_Processor")
For Each cpu In cpuSet
Debug.Print cpu.processorid
GetwmiProcessorID = cpu.processorid
Next
End Function