Option Compare Database
Option Explicit
'---------------------------------------------------------------------------------------
' Procedure : GetCpuID
' Date : 11/10/2017
' Purpose : Returns the serial number of the CPU
'---------------------------------------------------------------------------------------
Public Function GetCpuID() As String
Dim WMI, cpu, CPUID 'variants
Set WMI = GetObject("winmgmts:")
For Each cpu In WMI.InstancesOf("Win32_Processor")
CPUID = CPUID + cpu.ProcessorId
Next
' Debug.Print CPUID
If Nz(CPUID, "") <> "" Then
'remove all non-alphanumeric characters
CPUID = Replace(CPUID, ".", "")
CPUID = Replace(CPUID, ",", "")
CPUID = Replace(CPUID, ":", "")
CPUID = Replace(CPUID, ";", "")
CPUID = Replace(CPUID, "_", "")
CPUID = Replace(CPUID, " ", "")
CPUID = Replace(CPUID, "-", "")
CPUID = Replace(CPUID, "\", "")
CPUID = Replace(CPUID, "/", "")
CPUID = Replace(CPUID, "!", "")
CPUID = Replace(CPUID, "?", "")
CPUID = Replace(CPUID, "|", "")
CPUID = Replace(CPUID, "+", "")
CPUID = Replace(CPUID, "^", "")
CPUID = Replace(CPUID, "&", "")
CPUID = Replace(CPUID, "*", "")
CPUID = Replace(CPUID, "^", "")
CPUID = Replace(CPUID, "%", "")
CPUID = Replace(CPUID, "£", "")
CPUID = Replace(CPUID, """", "")
End If
'trim to remove spaces
GetCpuID = Nz(Trim(CPUID), "")
End Function
'---------------------------------------------------------------------------------------
' Procedure : GetMBID
' Date : 11/10/2017
' Purpose : Returns the serial number of the motherboard
'---------------------------------------------------------------------------------------
'
Public Function GetMBID() As String
Dim WMI, MB, MBID 'variants
Set WMI = GetObject("winmgmts:")
For Each MB In WMI.InstancesOf("Win32_BaseBoard")
MBID = MBID + MB.SerialNumber
Next
' Debug.Print MBID
If Nz(MBID, "") <> "" Then
'remove all non-alphanumeric characters
MBID = Replace(MBID, ".", "")
MBID = Replace(MBID, ",", "")
MBID = Replace(MBID, ":", "")
MBID = Replace(MBID, ";", "")
MBID = Replace(MBID, "_", "")
MBID = Replace(MBID, " ", "")
MBID = Replace(MBID, "-", "")
MBID = Replace(MBID, "\", "")
MBID = Replace(MBID, "/", "")
MBID = Replace(MBID, "!", "")
MBID = Replace(MBID, "?", "")
MBID = Replace(MBID, "|", "")
MBID = Replace(MBID, "+", "")
MBID = Replace(MBID, "^", "")
MBID = Replace(MBID, "&", "")
MBID = Replace(MBID, "*", "")
MBID = Replace(MBID, "^", "")
MBID = Replace(MBID, "%", "")
MBID = Replace(MBID, "£", "")
MBID = Replace(MBID, """", "")
'trim to remove spaces
GetMBID = Nz(Trim(MBID), "")
End If
End Function
'---------------------------------------------------------------------------------------
' Procedure : GetHdNum
' Date : 12/10/2017
' Purpose :Returns the serial number of the HDD
'---------------------------------------------------------------------------------------
'
Function GetHdNum() As String
Dim fsObj As Object
Dim drv As Object
Set fsObj = CreateObject("Scripting.FileSystemObject")
Set drv = fsObj.Drives("C")
'add default value in case code fails to return a value
'Use Hex to convert to string
'Trim to remove spaces
GetHdNum = Trim(Hex(Nz(drv.SerialNumber, 1749267980)))
End Function
'---------------------------------------------------------------------------------------
' Procedure : GetMac
' Date : 13/10/2017
' Purpose : Returns the MAC address
'---------------------------------------------------------------------------------------
Public Function GetMac() As String
Dim objWMIService As Object, objItem As Object, colItems As Variant
GetMac = ""
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")
For Each objItem In colItems
'Debug.Print Nz(objItem.Name, "") & " / " & Nz(objItem.MACAddress, "")
If InStr(objItem.Name, "etwork") <> 0 Then
If Not IsNull(objItem.MACAddress) Then
GetMac = objItem.MACAddress
' Debug.Print GetMac
Exit For
End If
End If
Next
End Function