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.
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 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 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 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
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.