Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
prog:lazarus:cas:windows:windowsupdate [09/06/2023 16:43]
thierry créée
prog:lazarus:cas:windows:windowsupdate [09/06/2023 16:56] (Version actuelle)
thierry [Sources & Ressources]
Ligne 1: Ligne 1:
 ====== Windows Update ====== ====== Windows Update ======
 +===== ChatGPT dit =====
 +Pour utiliser Windows Update en Free Pascal, vous pouvez utiliser l'API Windows Update Agent (WUA) en utilisant des appels de fonctions de la DLL "​wuauserv.dll"​. Voici les étapes générales pour effectuer une recherche de mises à jour et les installer :
 +
 +1. Inclure l'​unité Windows dans votre programme Pascal :
 +
 +<code delphi>
 +uses
 +  Windows;
 +</​code>​
 +
 +2. Déclarer les constantes et les types nécessaires pour les appels de fonctions :
 +
 +<code delphi>
 +const
 +  WUA_DLL = '​wuauserv.dll';​
 +
 +const
 +  WU_E_SUCCESS = $00000000;
 +
 +type
 +  HRESULT = LongInt;
 +
 +type
 +  TUpdateSession = type Pointer;
 +  TUpdateSearcher = type Pointer;
 +  TUpdateCollection = type Pointer;
 +  TUpdateInstaller = type Pointer;
 +</​code>​
 +
 +3. Déclarer les prototypes des fonctions nécessaires :
 +
 +<code delphi>
 +function WUInitialize(out Session: TUpdateSession):​ HRESULT; stdcall; external WUA_DLL name '​WUInitialize';​
 +function WUSearch(Session:​ TUpdateSession;​ out Searcher: TUpdateSearcher):​ HRESULT; stdcall; external WUA_DLL name '​WUSearch';​
 +function WUInstall(Session:​ TUpdateSession;​ const UpdateCollection:​ TUpdateCollection;​ out Installer: TUpdateInstaller):​ HRESULT; stdcall; external WUA_DLL name '​WUInstall';​
 +function WUShutdown(Session:​ TUpdateSession):​ HRESULT; stdcall; external WUA_DLL name '​WUShutdown';​
 +</​code>​
 +
 +4. Utiliser les fonctions pour effectuer la recherche des mises à jour et les installer :
 +
 +<code delphi>
 +var
 +  Session: TUpdateSession;​
 +  Searcher: TUpdateSearcher;​
 +  Collection: TUpdateCollection;​
 +  Installer: TUpdateInstaller;​
 +  ResultCode: HRESULT;
 +
 +begin
 +  // Initialisation de la session Windows Update
 +  ResultCode := WUInitialize(Session);​
 +  if ResultCode <> WU_E_SUCCESS then
 +  begin
 +    // Gestion de l'​erreur
 +    Exit;
 +  end;
 +
 +  try
 +    // Recherche des mises à jour
 +    ResultCode := WUSearch(Session,​ Searcher);
 +    if ResultCode <> WU_E_SUCCESS then
 +    begin
 +      // Gestion de l'​erreur
 +      Exit;
 +    end;
 +
 +    // Récupération de la collection de mises à jour trouvées
 +    // (vous pouvez filtrer les mises à jour selon vos critères)
 +    Collection := ...; // Code pour récupérer la collection de mises à jour
 +
 +    // Installation des mises à jour
 +    ResultCode := WUInstall(Session,​ Collection, Installer);
 +    if ResultCode <> WU_E_SUCCESS then
 +    begin
 +      // Gestion de l'​erreur
 +      Exit;
 +    end;
 +
 +    // Attendez que l'​installation se termine et effectuez les opérations nécessaires
 +
 +  finally
 +    // Fermeture de la session Windows Update
 +    WUShutdown(Session);​
 +  end;
 +end.
 +</​code>​
 +
 +Ceci est un exemple de base pour utiliser l'API Windows Update Agent en Free Pascal. Notez que vous devrez implémenter la récupération de la collection de mises à jour selon vos critères (par exemple, en utilisant les filtres appropriés). Vous devrez également gérer les erreurs et effectuer d'​autres opérations nécessaires,​ comme attendre que l'​installation des mises à jour se termine.
 +
 +Veuillez noter que l'​utilisation de l'API Windows Update Agent peut varier selon la version de Windows et les droits d'​accès de l'​utilisateur. Assurez-vous de tester et adapter le code en fonction de votre environnement spécifique.
 +====== Sources & Ressources ======
 +  * [[windows:​wmi:​system:​windowsupdate]] sur ce site