option Explicit
Class APIHelper
' 定義資料庫讀取類執行個體
Dim sqHelper
' ***************************************************************************
' 從計算機 API 中,擷取計算機的序列号
Function ReadComputerSerialNumber()
Dim objWMIService, colItems, objItem
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_BIOS")
' 傳回計算機序列号
For Each objItem In colItems
ReadComputerSerialNumber = Trim(objItem.SerialNumber)
Next
End Function
' 從計算機 API 中,擷取計算機的 MAC 位址
Function ReadMacAddress()
ReadMacAddress = ""
Dim objWMIService,objNetworkAdapters,objAdapter
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objNetworkAdapters = objWMIService.ExecQuery("select * from Win32_NetworkAdapterConfiguration where IPEnabled = 1")
For Each objAdapter In objNetworkAdapters
ShowMessage objAdapter.MacAddress,0
' Get the MAC address
ReadMacAddress = objAdapter.MacAddress
Next
' 從計算機系統 API 中,讀取計算機的磁盤數量。
Function ReadComputerDiskPartitions()
Dim objWMIService, wmiDiskDrives, wmiDiskDrive, objPartition
Set wmiDiskDrives = objWMIService.ExecQuery ("Select * from Win32_DiskDrive")
Dim diskPartitions, dicPartition, diskArray, diskPartitionsByQuery
Set diskArray = CreateObject("Scripting.Dictionary")
' 逐個磁盤驅動器讀取
For Each wmiDiskDrive In wmiDiskDrives
Select Case wmiDiskDrive.MediaType
' 如果是固态硬碟媒體
Case "Fixed hard disk media"
SET diskPartitions = CreateObject("Scripting.Dictionary")
diskPartitions.CompareMode = TextCompare
' 輸出磁盤編号 0 及磁盤大小
diskPartitions("DiskID") = wmiDiskDrive.Index
diskPartitions("DiskSize") = wmiDiskDrive.Size ' 機關 MB
Set diskPartitions("DiskPartitions") = CreateObject("Scripting.Dictionary")
' 輸出指定磁盤的分區清單
Set diskPartitionsByQuery = objWMIService.ExecQuery("Select * from Win32_DiskPartition WHERE DiskIndex = " & wmiDiskDrive.Index)
For each objPartition in diskPartitionsByQuery
SET dicPartition = CreateObject("Scripting.Dictionary")
dicPartition.CompareMode = TextCompare
dicPartition("PartitionID") = objPartition.Index
dicPartition("PartitionSize") = objPartition.Size
diskPartitions("DiskPartitions").Add dicPartition("PartitionID"),dicPartition
Next
diskArray.Add diskPartitions("DiskID"),diskPartitions
End Select
Next
Set ReadComputerDiskPartitions = diskArray
End Class