برای هر یک از سخت افزارهای سیستم، باید از کلاس مربوط به اون استفاده کنیم.
لیست کلاس های سخت افزار سیستم
در این آموزش چون قصد داریم مشخصات دیسک ها رو بدست بیاریم، باید از کلاس Win32_DiskDrive استفاده کنیم.
لیست کامل property های یک diskdrive :
Availability
BytesPerSector
Capabilities
CapabilityDescriptions
Caption
CompressionMethod
ConfigManagerErrorCode
ConfigManagerUserConfig
CreationClassName
DefaultBlockSize
Description
DeviceID
ErrorCleared
ErrorDescription
ErrorMethodology
FirmwareRevision
Index
InstallDate
InterfaceType
LastErrorCode
Manufacturer
MaxBlockSize
MaxMediaSize
MediaLoaded
MediaType
MinBlockSize
Model
Name
NeedsCleaning
NumberOfMediaSupported
Partitions
PNPDeviceID
PowerManagementCapabilities
PowerManagementSupported
SCSIBus
SCSILogicalUnit
SCSIPort
SCSITargetId
SectorsPerTrack
SerialNumber
Signature
Size
Status
StatusInfo
SystemCreationClassName
SystemName
TotalCylinders
TotalHeads
TotalSectors
TotalTracks
TracksPerCylinder
آخرین ویرایش به وسیله mazoolagh : پنج شنبه 27 خرداد 1400 در 13:33 عصر
اول یک جدول میسازیم که propertyهای مورد نظر ما رو در بر داشته باشه،
فیلدهای نمونه میتونه شبیه زیر باشه:
2.png
Option Compare Database
Option Explicit
Sub DisksInfo()
DoCmd.RunSQL ("DELETE * FROM DiskDrives")
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("DiskDrives")
Dim fld As Field
Dim Loc As New SWbemLocator
Dim Svc As SWbemServices
Set Svc = Loc.ConnectServer(".", "root\cimv2")
Dim Drives As SWbemObjectSet
Set Drives = Svc.ExecQuery("SELECT * FROM Win32_DiskDrive")
Dim Drive As SWbemObject
For Each Drive In Drives
rs.AddNew
For Each fld In rs.Fields
rs(fld.Name) = Trim(Drive.Properties_(fld.Name))
Next
rs.Update
Next
rs.Close
Set rs = Nothing
Set Loc = Nothing
Set Svc = Nothing
End Sub
نمونه نتایج:
1.png
برنامه نمونه: