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.