Код | function TRestoreViewer.GetRestorePoints: TRestorePoints; var ObjWMIService : OLEVariant; ColItems : OLEVariant; ColItem : OLEVariant; OEnum : IEnumvariant; // IValue : PLongint; CountOfRestorePoint : Integer; I: Integer; RestorePoint : TRestorePoint; begin ObjWMIService := GetWMIObject('winmgmts:\\localhost\root\default'); ColItems := objWMIService.ExecQuery('SELECT * FROM SystemRestore','WQL',0); OEnum := IUnknown(colItems._NewEnum) as IEnumVariant;
if not VarIsNull(ColItems.Count) then CountOfRestorePoint := StrToInt(VarToStr(ColItems.Count)) else CountOfRestorePoint := 0; if (CountOfRestorePoint = 0) then Exit;
// SetLength(Result, CountOfRestorePoint);
I := 0;
while OEnum.Next(1, colItem, nil {IValue}) = 0 do begin RestorePoint.Description := ColItem.Description; RestorePoint.EventType := EventTypeToStr(ColItem.EventType); RestorePoint.SequenceNumber := ColItem.SequenceNumber; RestorePoint.CreationTime := WMITimeToStr(ColItem.CreationTime); RestorePoint.RestorePointType := RestorePointTypeToStr(ColItem.RestorePointType);
Result[i] := RestorePoint; Inc(i); end; end;
|
|