Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RÉCUPÉRER LE KBID DES PATCHS CORRECTIFS INSTALLÉS SUR UNE MACHINE NT


Information sur la source

Description

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

  • 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;
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/
 

Commentaires et avis

signaler à un administrateur
Commentaire de hendrix le 02/11/2005 13:57:13

Je pense qu'il serait mieux de lister le contenu de la clé hotfix... car tous les patchs ne sont pas toujours désinstallables (ceci dit, ils ne tracent sans doute pas toujours tous dans la clé hotfix non plus... :-) ).

signaler à un administrateur
Commentaire de grandvizir le 18/12/2005 18:20:57

Hendrix> J'ai regardé ton HotFix et ça n'apporte rien de plus. Enfin presque... uniquement le KB du Windows Genuine Advance en plus. Sinon c'est vraiment pas mal, car HotFix donne des informations complémentaires. Mais elle en donne trop. Ce qui requierait des vérifications en plus pour extraire seulement les KB installés (cf. la valeur IsInstalled de chaque sous-clé).

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Detecter touches du clavier [ par sebrs1 ] salutj'ai un ptit probleme en delphi en esperant que vous pourrez m'aidersavez vous comment détécter les touche du claviers appuyées depuis n'importe Detecter et empecher une erreur de se produire [ par Millenius ] Voila mon prbJ'utilise un protocole UDP pour interoger des serveurs distants. Ils me répondent, et j'affiche le résultat. Jusqu'a la pas de prble seul detecter connexion internet [ par eedy31 ] salut a tous!j'ai juste une petite question:quelqu'un saurait t'il comment je pourrait faire pour savoir si la connexion internet est active ou pas av CS-Bar [ par koko ] Bon d'abord je ne sais pas ou je dois mettre ceci...alors, je n'arrive pas à installé la CS-Bar... il me dit que certain de mes fichiers sont perimés Detecter flash Player dans delphi ?? [ par Fredelphi ] Bonjour,J'ai fait une appli avec des swf.J'ai d'ailleurs utilisé les sources pour lire un swf sur ce site.Comment faire pour pouvoir détecter si le fl detecter une image [ par takwak ] Bonjour à tous ,je souhaiterais détecter sur l'écran si une image bmp (stockée sur disque ) est présente.Un exemple me serait bien utile.Merci d'avanc Patch pour Delphi 6 ne s'installe pas [ par Delphiprog ] J'ai téléchargé le dernier patch (mars 2003) pour Delphi 6 entreprise français et, à l'installation, il ne détecte pas correctement ma version de Delp Microsoft Agent [ par sisi231 ] SISI231J'ai besoin d'aide avec microsoft agent :comment assurer la portaébilité d'un programme microsoft agent car je l'ai installé sur mon ordinateur detecter un evenement souris via Tapplication? [ par mcguffin ] bonjour je cherche un moyen pour que mon application detecte que le bouton de la souris a été relaché.je ne veux pas passer par les composants, car je création d'un executable apartire de mon patch maker [ par MaXoR ] Merci pour vos message mais se que je veux dire sais que je sais pas comment faire pour que mon patch maker crée unexecutable pour aler modifier des b


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.