Récupérer le kbid des patchs correctifs installés sur une machine nt

Contenu du snippet

Permet de détecter rapidement si un patch a oui ou non besoin d'être installé. Par extension, sachez contre quoi vous êtes protégés. A défaut, contre quoi vous devez blinder votre PC.

Les KB apparaissent en guise d'informations de désinstallation. Si Windows "masque" ces modules, ici, je les récupère.

Pour plus d'information sur un patch N°WXYZ, regardez le lien:
http://support.microsoft.com?kbid=WXYZ

Source / Exemple :


uses Classes, Registry;

  procedure GetKBid(KBList:TStrings; Simplified:boolean);
    function IDK(Chain:string):boolean;
    var idx : integer;
    begin
      Result:=true;
      for idx:=1 to Length(Chain) do
        Result:=Result and (Chain[idx] in ['0'..'9']);
    end;
  var i : integer;
  begin
    KBList.Clear;
    with TRegistry.Create do
      try
        RootKey:=HKEY_LOCAL_MACHINE;
        if OpenKey('Software\Microsoft\Windows\CurrentVersion\Uninstall\',false) then
          begin
            GetKeyNames(KBList);
            for i:=KBList.Count-1 downto 0 do
              if ((UpperCase(Copy(KBList[i],1,2))<>'KB') or (not IDK(Copy(KBList[i],3,Length(KBList[i]))))) then
                KBList.Delete(i);
            CloseKey;
          end;
        if Simplified then
          for i:=0 to KBList.Count-1 do
            KBList[i]:=Copy(KBList[i],3,Length(KBList[i]));
      finally
        Free;
      end;
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  GetKBid(ListBox1.Items,true);
  ListBox1.Items.Sort;
end;

Conclusion :


Vous pouvez toujours aller visiter http://altert.family.free.fr/

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.