Servus,
habe mir aus dem Web ne Methode gesucht um per
WMI auf Daten zu zugreifen.
Delphi-Quellcode:
var
Server: string;
Enum: IEnumVARIANT;
varArr: OleVariant;
lNumElements: ULong;
begin
Server := '127.0.0.1';
try
log.Lines.BeginUpdate;
Enum := CoSWbemLocator.Create.ConnectServer(Server, 'root\cimv2', '',
'', '', '', 0, nil).ExecQuery('Select * from Win32_LogicalDisk', 'WQL',
wbemFlagBidirectional, nil)._NewEnum as IEnumVariant;
(* while (Succeeded(ADsEnumerateNext(Enum, 1, varArr, lNumElements))) and (lNumElements > 0) do
begin
DumpWMI_Process(IUnknown(varArr) as SWBemObject);
end;*)
Enum := CoSWbemLocator.free;
finally
// FreeAndNil(Enum);
log.Lines.EndUpdate;
end;
Nur oben dieser Code, wenn ich den per Timer immer wieder aufrufe, wird der Speicher größer und größer.
Bei FastMM4 ist alles ok.
Habe schon versucht Variablen freizugeben, aber nichts nur fehler.
Wie muss ich die sachen wieder freigeben?
Mfg