Encontré este código, pero no me dice que USES debo usar (algo común cuando publican código...)
Código Delphi
[-]procedure GetListInstalledUpdates;
var
updateSession : OleVariant;
updateSearcher : OleVariant;
updateSearchResult : OleVariant;
updateEntry : OleVariant;
UpdateCollection : OleVariant;
oEnum : IEnumvariant;
iValue : LongWord;
begin
updateSession:= CreateOleObject('Microsoft.Update.Session');
updateSearcher := updateSession.CreateUpdateSearcher;
Writeln('Searching');
updateSearcher.online:=False;
updateSearchResult:= updateSearcher.Search(Format('IsInstalled = 1 and Type=%s',[QuotedStr('Software')]));
UpdateCollection := updateSearchResult.Updates;
oEnum := IUnknown(UpdateCollection._NewEnum) as IEnumVariant;
while oEnum.Next(1, updateEntry, iValue) = 0 do
begin
Writeln(updateEntry.Title);
updateEntry:=Unassigned;
end;
Writeln('Done');
end;