sub DDD() Dim oAdapters As Object, oAdapter As Object On Error Resume Next Set oAdapters = GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") For Each oAdapter In oAdapters Text1 = "MAC ADDRESS: " & Replace(oAdapter.MacAddress, ":", " ") & vbCrLf Exit For Next '用WMI对象列出系统所有磁盘:----Instance.vbs---- Dim objDisk For Each objDisk In GetObject("winmgmts:").InstancesOf("Win32_LogicalDisk") Text1 = Text1 + objDisk.DeviceId & " " Next Text1 = Text1 + vbCrLf '获得物理内存的容量:-----physicalMemory.vbs----- Dim strComputer: strComputer = "." Set wbemServices = GetObject("winmgmts:\\" & strComputer) Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration") For Each wbemObject In wbemObjectSet Text1 = Text1 + "物理内存 (MB): " & CInt(wbemObject.totalPhysicalMemory / 1024) + vbCrLf Next 'CPU的序列号:---CPUID.vbs--- Dim cpuInfo As String: cpuInfo = "" Set moc = GetObject("Winmgmts:").InstancesOf("Win32_Processor") For Each mo In moc cpuInfo = CStr(mo.ProcessorId) Text1 = Text1 + "CPU SerialNumber is : " & cpuInfo + vbCrLf Next '硬盘型号:---HDID.vbs--- Dim HDid Set moc = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive") For Each mo In moc HDid = mo.Model Text1 = Text1 + "硬盘型号为:" & HDid + vbCrLf Next end sub
这么简单了用吧,为什么你要用API呢,'硬盘型号 Dim HDid Set moc = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive") For Each mo In moc HDid = mo.Model Text1 = Text1 + "硬盘型号为:" & HDid + vbCrLf Next
非要用也有读取磁盘序列号 Private Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)
FileSystemObject带的,呵呵,我也来牛逼一把,前几天借用了csdn上的几行代码,很有效,就拿来分享了。Dim Fso As New FileSystemObject, drv As Drive, s As String Set drv = Fso.GetDrive(Fso.GetDriveName("e:")) s = "drive" & UCase("e:") & "_" s = s & drv.VolumeName & vbCrLf s = s & "total space" & FormatNumber(drv.TotalSize / 1024 / 1024, 0) s = s & "MB" & vbCrLf s = s & "free space" & FormatNumber(drv.FreeSpace / 1024, 0) s = s & "KB" & vnrclf Debug.Print s
Dim oAdapters As Object, oAdapter As Object
On Error Resume Next
Set oAdapters = GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each oAdapter In oAdapters
Text1 = "MAC ADDRESS: " & Replace(oAdapter.MacAddress, ":", " ") & vbCrLf
Exit For
Next
'用WMI对象列出系统所有磁盘:----Instance.vbs----
Dim objDisk
For Each objDisk In GetObject("winmgmts:").InstancesOf("Win32_LogicalDisk")
Text1 = Text1 + objDisk.DeviceId & " "
Next
Text1 = Text1 + vbCrLf
'获得物理内存的容量:-----physicalMemory.vbs-----
Dim strComputer: strComputer = "."
Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration")
For Each wbemObject In wbemObjectSet
Text1 = Text1 + "物理内存 (MB): " & CInt(wbemObject.totalPhysicalMemory / 1024) + vbCrLf
Next
'CPU的序列号:---CPUID.vbs---
Dim cpuInfo As String: cpuInfo = ""
Set moc = GetObject("Winmgmts:").InstancesOf("Win32_Processor")
For Each mo In moc
cpuInfo = CStr(mo.ProcessorId)
Text1 = Text1 + "CPU SerialNumber is : " & cpuInfo + vbCrLf
Next
'硬盘型号:---HDID.vbs---
Dim HDid
Set moc = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive")
For Each mo In moc
HDid = mo.Model
Text1 = Text1 + "硬盘型号为:" & HDid + vbCrLf
Next
end sub
Dim HDid
Set moc = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive")
For Each mo In moc
HDid = mo.Model
Text1 = Text1 + "硬盘型号为:" & HDid + vbCrLf
Next
Private Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)
Set drv = Fso.GetDrive(Fso.GetDriveName("e:"))
s = "drive" & UCase("e:") & "_"
s = s & drv.VolumeName & vbCrLf
s = s & "total space" & FormatNumber(drv.TotalSize / 1024 / 1024, 0)
s = s & "MB" & vbCrLf
s = s & "free space" & FormatNumber(drv.FreeSpace / 1024, 0)
s = s & "KB" & vnrclf
Debug.Print s