VB6 獲取CPUID的幾种方法

本文介绍两种获取计算机CPU序列号的方法:一是通过API调用,二是利用WMI(Windows Management Instrumentation)脚本。这两种方法均适用于Windows操作系统,并详细展示了使用VBA(Visual Basic for Applications)实现的具体代码。
第一种:API: 
  Private   Type   OSVERSIONINFO   
                  dwOSVersionInfoSize   
As   Long   
                  dwMajorVersion   
As   Long   
                  dwMinorVersion   
As   Long   
                  dwBuildNumber   
As   Long   
                  dwPlatformId   
As   Long   
                  szCSDVersion   
As   String   *   128             '     Maintenance   string   for   PSS   usage   
  End   Type   
  
Private   Declare   Function   GetVersionEx   Lib   "kernel32"   Alias   "GetVersionExA"   (lpVersionInformation   As   OSVERSIONINFO)   As   Long   
  
Private   Declare   Function   GetComputerName   Lib   "kernel32"   Alias   "GetComputerNameA"   (ByVal   lpBuffer   As   String,   nSize   As   Long)   As   Long   
    
  
Public   Function   GetCPUid()   As   String   
    
          
On   Error   GoTo   doError   
            
          
Dim   len5   As   Long,   aa   As   Long   
          
Dim   cmprName   As   String   
          
Dim   Computer   As   String   
          
Dim   CPUs   As   Object,   MyCpu   As   Object   
          
Dim   osver   As   OSVERSIONINFO   
          
Dim   SerialNo   As   String   
    
          
'取得Computer   Name   
          cmprName   =   String(255,   0)   
          len5   
=   256   
          aa   
=   GetComputerName(cmprName,   len5)   
          cmprName   
=   Left(cmprName,   InStr(1,   cmprName,   Chr(0))   -   1)   
          Computer   
=   cmprName                 '取得CPU端口号   
          Set   CPUs   =   GetObject("winmgmts:{impersonationLevel=impersonate}!\\"   &   Computer   &   "\root\cimv2").ExecQuery("select   *   from   Win32_Processor")   
          
For   Each   MyCpu   In   CPUs   
                  SerialNo   
=   MyCpu.ProcessorId   
                  
Exit   For   
          
Next   
          GetCPUid   
=   SerialNo   
          
Exit   Function   
  doError:   
          GetCPUid   
=   ""   
    
End   Function   
第二种:使用类:
 'Microsoft   WMI   Scripting   V1.1   Library的引入   
    Public Function GetProcessorID() As String
      Dim a     As SWbemServices
      Dim b     As SWbemObjectSet
      Dim c     As SWbemObject
      Dim d     As SWbemPropertySet
      Dim e     As SWbemProperty
      Dim str As String
     
         
      Set a = GetObject("winmgmts:")
      Set b = a.InstancesOf("Win32_Processor")
      For Each c In b
            With c
                If .Properties_.Count > 0 Then
                    Set d = .Properties_
                     
                    For Each e In d
                      If UCase(e.Name) = UCase("ProcessorId") Then
                          str = e.Value
                      End If
                       
                    Next
                End If
            End With
      Next
      GetProcessorID = str
     
  End Function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值