2016-05-17 3 views
1

Я получил сообщениеКак получить значение свойства StartingOffset в классе Win32_DiskPartition

Метод «StartingOffset» не поддерживается объектом автоматизации.

Вот небольшая часть моего кода:

colLogicalDisks := objWMIService.ExecQuery('ASSOCIATORS OF {Win32_DiskPartition.DeviceID="'+VarToStr(objPartition.DeviceID)+'"} WHERE AssocClass = Win32_LogicalDiskToPartition'); 
oEnumLogical := IUnknown(colLogicalDisks._NewEnum) as IEnumVariant; 
    while oEnumLogical.Next(1, objLogicalDisk, iValue) = 0 do 
    begin 
     ShowMessage(objLogicalDisk.StartingOffset); 
     driveletter := string(objLogicalDisk.DeviceID); 

     if driveletter = ExtractFileDrive(GetCurrentDir) then 
     begin 
      SetLength(result, 6); 
      result[0] := string(objdiskDrive.DeviceID); 
      result[1] := string(objdiskDrive.Model); 
      result[2] := string(objdiskDrive.MediaType); 
      result[3] := string(ConvertBytes(objdiskDrive.Size)); 
      result[4] := string(objLogicalDisk.Description); 
      result[5] := string(ConvertBytes(objLogicalDisk.Size)); 
     end; 
     objLogicalDisk:=Unassigned; 
    end; 

Исходный код из here

ответ

2

Ваш код не потому, что переменная objLogicalDisk содержит экземпляр для класса Win32_LogicalDisk WMI, и вы должны иметь доступ к класс Win32_DiskPartition. Также ваш образец кода не является полным, но кажется, что вы используете код, отправленный here. Если это так, вы можете получить доступ к объекту StartingOffset через переменную objPartition (objPartition.StartingOffset)

+0

Спасибо, я получил его сейчас! – nguyentu

+0

Нет результатов для 'System Reserved' partition ... – nguyentu