DELPHI利WMI获得硬盘参数
DELPHI利WMI獲得硬盤參數
procedure TFrmMain.RzGroup1Items5Click(Sender: TObject); varWmi, Objs, Obj: oleVariant;Enum: IEnumVariant;C: Cardinal;Str,str1:string; beginMemo1.Clear;Memo1.Lines.Add('【磁盤參數信息】');Wmi:= CreateOleObject('WbemScripting.SWbemLocator');Objs := Wmi.ConnectServer('.','root/cimv2').ExecQuery('Select * from Win32_DiskDrive');Enum := IEnumVariant(IUnknown(Objs._NewEnum));Enum.Reset;while (Enum.Next(1,Obj,C)=s_ok) dobeginstr1:='Index';Obj := Obj.Properties_.Item(str1, 0).Value;if VarIsNull(obj) thenbeginStr:='ERROR';end;if VarIsArray(obj) thenbeginstr:=Obj[0];end;if VarIsStr(obj) or VarIsCustom(obj) or VarIsFloat(obj) or VarIsNumeric(obj) or VarIsOrdinal(obj) thenbeginstr:=Obj;end;Memo1.Lines.Add('');Memo1.Lines.Add('磁盤序號: '+Str);Memo1.Lines.Add('接口類型: '+GetWMISub('DiskDrive','InterfaceType',str1,Str));Memo1.Lines.Add('磁盤名稱: '+GetWMISub('DiskDrive','Caption',str1,Str));Memo1.Lines.Add('磁盤序列號: '+GetWMISub('DiskDrive','SerialNumber',str1,Str));Memo1.Lines.Add('磁盤大小: '+FormatFloat('0',StrToFloat(GetWMISub('DiskDrive','Size',str1,Str))/1000/1000/1000)+' GB');Memo1.Lines.Add('磁盤分區數: '+GetWMISub('DiskDrive','Partitions',str1,Str));Memo1.Lines.Add('柱面總數: '+GetWMISub('DiskDrive','TotalCylinders',str1,Str));Memo1.Lines.Add('磁頭總數: '+GetWMISub('DiskDrive','TotalHeads',str1,Str));Memo1.Lines.Add('扇區總數: '+GetWMISub('DiskDrive','TotalTracks',str1,Str));Memo1.Lines.Add('曲目總數: '+GetWMISub('DiskDrive','TotalCylinders',str1,Str));end; end;公共函數
function GetWMISub(WMIType,WMIProperty,WMISearch,WMISearchText:String):String; varWmi, Objs, Obj: oleVariant;Enum: IEnumVariant;C: Cardinal; beginWmi:= CreateOleObject('WbemScripting.SWbemLocator');Objs := Wmi.ConnectServer('.','root/cimv2').ExecQuery('Select * from Win32_' + WMIType + ' where '+WMISearch+' = '+ '"'+WMISearchText+'"');Enum := IEnumVariant(IUnknown(Objs._NewEnum));Enum.Reset;Enum.Next(1,Obj,C);Obj := Obj.Properties_.Item(WMIProperty, 0).Value;if VarIsNull(obj) thenbeginResult:='Unknow';end;if VarIsArray(obj) thenbeginResult := Obj[0];end;if VarIsStr(obj) or VarIsCustom(obj) or VarIsFloat(obj) or VarIsNumeric(obj) or VarIsOrdinal(obj) thenbeginResult:= Obj;end;end;WMI-Win32_DiskDrive 硬盤參數
Availability --設備的狀態。
BytesPerSector --在每個扇區的物理磁盤驅動器的字節數。
Capabilities --媒體訪問設備的能力陣列。
CapabilityDescriptions --更詳細的解釋為任何在功能陣列表示的訪問設備的功能的列表
Caption --對象的序列號
CompressionMethod --設備所使用的算法或工具,以支持壓縮。
ConfigManagerErrorCode --Windows配置管理器錯誤代碼。
ConfigManagerUserConfig --如果為True,該設備使用用戶定義的配置。
CreationClassName --代表所在的類
DefaultBlockSize --此設備默認塊大小,以字節為單位。
Description --描述
DeviceID --磁盤驅動器與系統中的其他設備的唯一標識符
ErrorCleared --如果為True,報告LastErrorCode錯誤現已清除。
ErrorDescription --關于可能采取的糾正措施記錄在LastErrorCode錯誤,和信息的詳細信息。
ErrorMethodology --誤差檢測和校正的類型被此設備支持。
FirmwareRevision --修訂制造商分配的磁盤驅動器固件。
Index --給定的驅動器的物理驅動器號。此屬性由GetDriveMapInfo方法填補。 0xFF的值表示給定的驅動器不映射到物理驅動器。
InstallDate --日期和時間對象安裝。此屬性不需要的值以表示已安裝的對象。
InterfaceType --物理磁盤驅動器的類型 (IDE、sata)
LastErrorCode --報告的邏輯設備上一個錯誤代碼。
Manufacturer --制造商名稱
MaxBlockSize --最大塊的大小,以字節為單位,通過該設備訪問的媒體。
MaxMediaSize --最大介質尺寸的介質,以KB為單位,由該設備支持。
MediaLoaded --如果真,媒體為一磁盤驅動器加載,這意味著該設備具有一個可讀的文件系統和可訪問。對于固定磁盤驅動器,該屬性將始終為TRUE。
MediaType --由該設備使用或訪問的媒體類型。
MinBlockSize --最小的塊大小,以字節為單位,通過該設備訪問的媒體。
Model --磁盤驅動器的制造商的型號。
Name --名字
NeedsCleaning --如果真,媒體接入設備需要清潔。不論手動或自動清洗是可能顯示在Capabilities屬性。
NumberOfMediaSupported --可被支持的或插入的介質最大數量
Partitions --此物理磁盤驅動器上的分區是由操作系統識別的數目。
PNPDeviceID --即插即用邏輯設備的播放設備標識符。
PowerManagementCapabilities --邏輯設備的特定功率相關的能力陣列。
PowerManagementSupported --如果為True,該設備可以是電源管理
SCSIBus --盤驅動器的SCSI總線號。
SCSILogicalUnit --SCSI邏輯單元的磁盤驅動器的號碼(LUN)。
SCSIPort --盤驅動器的SCSI端口號。
SCSITargetId --SCSI標識符號碼的磁盤驅動器的。
SectorsPerTrack --在每個軌道此物理磁盤驅動器扇區數。
SerialNumber --由制造商分配的號來識別物理介質。
Signature --磁盤識別。該屬性可以被用于識別一個共享資源。
Size --磁盤大小
Status --對象的當前狀態。
StatusInfo --邏輯設備的狀態
SystemCreationClassName --該作用域計算機的CreationClassName屬性的值。
SystemName --系統名稱
TotalCylinders --物理磁盤驅動器上柱面總數。該值可能不準確
TotalHeads --磁盤驅動器上磁頭總數。該值可能不準確。
TotalSectors --物理磁盤驅動器上的扇區總數。該值可能不準確。
TotalTracks --物理磁盤驅動器上的曲目總數。該值可能不準確。
TracksPerCylinder --在物理磁盤驅動器上的每個柱面軌跡的數量。該值可能不準確。
總結
以上是生活随笔為你收集整理的DELPHI利WMI获得硬盘参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 协卡助手无法卸载的解决办法
- 下一篇: All flavors must now