Я пытаюсь прочитать Windows EventLog с WMI -> Win32_NTEventlogFile. Я использую пример кода из инструмента "WMI Delphi Code Creator" (link to WMI tutorial)Как я могу прочитать параметры WMI «Данные» и «InsertionStrings»?
procedure TEventLogsForm.GetWin32_NTLogEventInfo;
const
WbemUser ='';
WbemPassword ='';
WbemComputer ='localhost';
wbemFlagForwardOnly = $00000020;
var
FSWbemLocator : OLEVariant;
FWMIService : OLEVariant;
FWbemObjectSet: OLEVariant;
FWbemObject : OLEVariant;
oEnum : IEnumvariant;
iValue : LongWord;
begin;
FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NTLogEvent Where Logfile="Application"','WQL',wbemFlagForwardOnly);
oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
while oEnum.Next(1, FWbemObject, iValue) = 0 do
begin
try
// ????
if not VarIsNull(FWbemObject.Data) then
Showmessage(IntToStr(Integer(FWbemObject.Data)));// Array of Uint8
if not VarIsNull(FWbemObject.InsertionStrings) then
Showmessage(String(FWbemObject.InsertionStrings));
except
on E:Exception do
begin
MessageDlg(E.Message, mtError, [mbOK], 0);
end;
end;
FWbemObject:=Unassigned;
end;
end;
Я пытаюсь прочитать параметры "FWbemObject.Data" и "FWbemObject.InsertionStrings". Но я получаю ошибку: Вариант типа (Array Variant) не может быть преобразовано в тип (OleStr)
Как читать/отобразить эти параметры?
Пожалуйста, не ставьте тег информацию в заголовке. Система маркировки здесь очень хороша в классификации вещей и не нуждается в помощи. :-) Пожалуйста, см. [Если вопросы включают «теги» в их названиях?] (Http://meta.stackexchange.com/q/19190/172661), где голосование кажется «Нет», , Благодарю. –
ОК, я понимаю. Спасибо – niko2post