OleVariant & VarToStr & Could not convert variant of type (Dispatch) into type (String)

LocksmithPC
Дата: 24.12.2019 12:16:57
Доброго дня, жентельмены.

Вытаскиваю инфу о мониторах из WMI. Спотыкаюсь на VarToStr(lItem.Properties_.Item(AProperty[pCount], 0));

Вылетает Excepation с мессаджем Could not convert variant of type (Dispatch) into type (String)

Как победить? Как узнать что именно в данный момент лежит в lItem.Properties_.Item(AProperty[pCount], 0)? И как правильно обработать это?

Мой протокол:
+

-- Monitor --
ManufacturerName = Could not convert variant of type (Dispatch) into type (String)
ProductCodeID = Could not convert variant of type (Dispatch) into type (String)
SerialNumberID = Could not convert variant of type (Dispatch) into type (String)
UserFriendlyName = Could not convert variant of type (Dispatch) into type (String)
UserFriendlyNameLength = 13
WeekOfManufacture = 28
YearOfManufacture = 2012


Протокол WMICodeCreator
+

-----------------------------------
WmiMonitorID instance
-----------------------------------
Active: Истина
InstanceName: DISPLAY\AOC1941\4&2d69ced9&0&UID50531072_0
ManufacturerName: 65,79,67,0,0,0,0,0,0,0,0,0,0,0,0,0
ProductCodeID: 49,57,52,49,0,0,0,0,0,0,0,0,0,0,0,0
SerialNumberID: 68,76,85,67,55,72,65,48,49,52,50,52,53,0,0,0
UserFriendlyName: 49,57,52,49,0,0,0,0,0,0,0,0,0
UserFriendlyNameLength: 13
WeekOfManufacture: 28
YearOfManufacture: 2012
wadman
Дата: 24.12.2019 12:49:14
LocksmithPC
ManufacturerName = Could not convert variant of type (Dispatch) into type (String)
ProductCodeID = Could not convert variant of type (Dispatch) into type (String)
SerialNumberID = Could not convert variant of type (Dispatch) into type (String)
UserFriendlyName = Could not convert variant of type (Dispatch) into type (String)

Массивы, скорее всего.
LocksmithPC
Дата: 24.12.2019 13:14:59
wadman

Массивы, скорее всего.


Вопрос, как на ходу узнать массив ли это, и как вынимать данные из него?
Ghost Writer
Дата: 24.12.2019 13:16:32
VarType()
LocksmithPC
Дата: 24.12.2019 13:24:19
Ghost Writer
VarType()


VarTypeAsText(VarType(lValue)) утверждает, что там Dispatch
LocksmithPC
Дата: 24.12.2019 13:46:08
wadman
https://stackoverflow.com/questions/3904619/delphi7-get-attached-monitor-properties ?


Видел. Там серийников нет. Я вынимаю из root\WMI WmiMonitorID
wadman
Дата: 24.12.2019 14:07:20
LocksmithPC
wadman
https://stackoverflow.com/questions/3904619/delphi7-get-attached-monitor-properties ?


Видел. Там серийников нет. Я вынимаю из root\WMI WmiMonitorID

Мне выдает немного более понятную ошибку:

First chance exception at $76B85EF8. Exception class EVariantTypeCastError with message 'Could not convert variant of type (Array Variant) into type (String)'. Process Project1.exe (12452)
LocksmithPC
Дата: 24.12.2019 14:15:02
wadman

Мне выдает немного более понятную ошибку:
First chance exception at $76B85EF8. Exception class EVariantTypeCastError with message 'Could not convert variant of type (Array Variant) into type (String)'. Process Project1.exe (12452)


Delphi которая?
wadman
Дата: 24.12.2019 14:19:35
LocksmithPC
wadman

Мне выдает немного более понятную ошибку:
First chance exception at $76B85EF8. Exception class EVariantTypeCastError with message 'Could not convert variant of type (Array Variant) into type (String)'. Process Project1.exe (12452)


Delphi которая?

2007