VBA Device Serial Number

Mendapatkan sebuah serial number yang ada pada device yang saat ini digunakan.

Banyak sekali digunakan untuk membuat sebuah Serial Number untuk aplikasi VBA yang berhasil dibuat.

Dengan mengambil sebuah serial number yang ada pada device,

menjadikan sebuah Aplikasi VBA hanya bisa dijalankan untuk 1 device dengan 1 serial number saja.

Ada beberapa pilihan serial number yang bisa diambil dari device yang digunakan,

Walaupun yang paling umum adalah dengan mengambil serial Number dari Volume Drive sebuah Hardisk.

Berikut ini adalah beberapa Serial number yang bisa diambil dengan menggunakan Script VBA yang ada pada Device yang saat ini digunakan.

Volume Drive Serial Number (Logical Harddisk)

Ini adalah yang paling umum serial number yang diambil dan digunakan.

Untuk mendapatkan serial dari Volume Drive ada dua cara,

Pertama melalui jalur File System Object

Function HDSerialNumber() As String
Dim fsObj As Object, drv As Object

Set fsObj = CreateObject("Scripting.FileSystemObject")
Set drv = fsObj.Drives("C")
HDSerialNumber = drv.SerialNumber
End Function

Pada script diatas, sebuah Object FileSystemObject dibuat kemudian mengambil Serial Number dari Volume Drive C.

Drive C digunakan karena setiap komputer pasti memiliki Drive C, berbeda dengan Drive yang lain misalnya D atau E,

Belum tentu komputer pengguna memiliki Drive itu, jadi amannya gunakan Drive C.

FileSystemObject menghasilkan Serial Number dalam bentuk Long Integer dari Time Stamp ketika Volume Drive dibuat.

Masih di cara mendapatkan serial Volume Drive tetapi cara kedua ini melalui jalur Windows Management Instrumens (WMI)

Public Function HDSerialNumberL() As String
Dim objWMI As Object
Dim objWin32 As Object
Dim objLD As Object
Dim strSN As Variant

Set objWMI = GetObject("WinMgmts:")
Set objWin32 = objWMI.InstancesOf("Win32_LogicalDisk")

For Each objLD In objWin32
    If objLD.DeviceID = "C:" Then
        strSN = objLD.VolumeSerialNumber
    End If
Next

HDSerialNumberL = strSN
End Function

Script ini pun sama, mendapatkan serial number dari Volume Drive C.

Bedanya, cara kedua ini mengunakan WMI dan hasil Serial Number yang didapatkan berupa nilai Hexa.

Serial Number Hardisk Fisik

Serial Number ini adalah serial number yang diberikan oleh pabrik atau produsen Hardisk, dimana serial number ini nempel di Fisik hardisk.

Untuk mendapatkan Serial Number hardisk Fisik, bisa menggunakan script VBA menggunakan Windows Management Instrumens (WMI)

Public Function HDSerial() As String

Dim objWMI As Object
Dim objWin32 As Object
Dim objPM As Object
Dim strSN As String

Set objWMI = GetObject("WinMgmts:")
Set objWin32 = objWMI.InstancesOf("Win32_PhysicalMedia")

For Each objPM In objWin32
    strSN = strSN & (":" + objPM.SerialNumber)
Next

HDSerial = Trim(Mid(strSN, 2))
    
End Function

Dengan script diatas, semua Hardisk yang terpasang pada komputer akan terdeketsi dan diambil serial numbernya.

Setiap serial Number hardisk Fisik akan dipisahkan dengan “:” jika terdapat lebih dari 1 Hardisk yang terpasang.

Serial Number BIOS

Serial Number ini adalah serial Number yang terdapat pada Chipset Basic Input Output System (BIOS).

Setiap PC tentu akan memiliki Serial Number BIOS yang berbeda-beda.

Sehingga serial number ini pun bisa digunakan untuk membuat sebuah serial number untuk aplikasi yang kita buat.

Berikut ini adalah script VBA untuk mendapatkan serial number BIOS

Public Function GetBIOSSerialNumber() As String
   
    Dim oWMI As Object    'WMI object to query
    Dim oBIOSs As Object
    Dim oBIOS As Object
    Dim Tmp As String

    Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set oBIOSs = oWMI.ExecQuery("SELECT SerialNumber FROM Win32_BIOS")

    For Each oBIOS In oBIOSs
        Tmp = Tmp & ("," + oBIOS.SerialNumber)
    Next
    
    GetBIOSSerialNumber = Mid(Tmp, 2)
End Function

Serial Number Processor

Serial number ini adalah serial number yang ada pada Processor,

Serial number ini diberikan oleh pabrik dan tentu memiliki keunikan yang tidak akan sama dengan serial number processor lainnya.

Untuk mendapatkan serial number processor bisa menggunakan Script VBA seperti dibawah ini

Function ProcessorNumber()
Dim WMI As Object
Dim Proc As Object
Dim Procs As Object
Dim Tmp As String

Set WMI = GetObject("winmgmts:")
Set Procs = WMI.ExecQuery("select ProcessorId from win32_processor")
For Each Proc In Procs
    Tmp = Tmp & ("," + Proc.ProcessorId)
Next Proc
ProcessorNumber = Mid(Tmp, 2)
End Function

Serial Number MotherBoard

Setiap PC tentunya memiliki Motherboard, dimana motherboard ini yang mengatur semua periperal bekerja, termasuk Processor ada dan menempel di Motherboard.

Dengan VBA kita juga bisa mengambil Serial number Fisik yang dibuat oleh pabrik.

Untuk Scriptnya bisa dilihat dibawah ini

Function BoardSerialNumber() As String
Dim objWMI As Object
Dim objWin32 As Object
Dim Board As Object
Dim Tmp As String
        
Set objWMI = GetObject("WinMgmts:")
Set objWin32 = objWMI.InstancesOf("Win32_BaseBoard")

For Each Board In objWin32
    Tmp = Tmp & (", " + Board.SerialNumber)
Next Board
        
BoardSerialNumber = Trim(Mid(Tmp, 2))
End Function

Itulah beberapa serial number yang ada pada komputer kita yang bisa dimanfaatkan untuk membuat sebuah aplikasi dengan serial number yang bisa digunakan hanya pada 1 komputer saja.

Leave a Reply

Your email address will not be published. Required fields are marked *