procedure GetWin32_NTLogEventInfo;
const
WbemUser = '
';
WbemPassword = '
';
WbemComputer = '
localhost';
wbemFlagForwardOnly = $00000020;
var
FSWbemLocator: OLEVariant;
FWMIService: OLEVariant;
FWbemObjectSet: OLEVariant;
FWbemObject: OLEVariant;
oEnum: IEnumvariant;
iValue: LongWord;
Insertion:
array of String;
Data:
array of Byte;
I: integer;
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
begin
Data := FWbemObject.Data;
for I := VarArrayLowBound(Data)
to VarArrayLowBound(Data)
do // Fehler!
Showmessage(IntToStr(Data[I]));
// Array of Uint8
end;
if not VarIsNull(FWbemObject.InsertionStrings)
then
begin
Insertion := FWbemObject.InsertionStrings;
for I := VarArrayLowBound(Insertion)
to VarArrayLowBound(Insertion)
do // Fehler!
Showmessage(Insertion[I]);
end;
except
on E:
Exception do
begin
MessageDlg(E.
Message, mtError, [mbOK], 0);
end;
end;
FWbemObject := Unassigned;
end;
end;