Différences
Ci-dessous, les différences entre deux révisions de la page.
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 | ||