delphi - 如何获取 Win32_DiskPartition 类中的 GettingOffset 属性值

标签 delphi winapi wmi

我收到一条消息

Method 'StartingOffset' not supported by automation object.

这是我的代码的一小部分:

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

最佳答案

您的代码失败,因为 objLogicalDisk 变量保存 Win32_LogicalDisk 的实例。 WMI 类,您需要访问 Win32_DiskPartition类(class)。此外,您的示例代码并不完整,但您似乎正在使用发布的代码 here 。如果是这种情况,您可以通过 objPartition 变量 (objPartition.StartingOffset)

访问 StartingOffset 属性

关于delphi - 如何获取 Win32_DiskPartition 类中的 GettingOffset 属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37274646/

相关文章:

winapi - 使用 Windows (XP+) api 发送(串行)中断

networking - 在 Windows 上以编程方式检测连接的网络速度

delphi - 用什么替换在nextgen下不推荐使用的TSysCharSet?

delphi - 在某些情况下删除部分条件

delphi - 使用带有默认参数和重载过程的字符串数组

c# - 什么是消息泵?

c++ - 键盘输入程序中的退格功能

windows - 获取链接速度 - Win32_PerfRawData_Tcpip_NetworkInterface

python - 使用 IronPython 中的 ManagementClass.Getinstances()

delphi - 对象的引用计数