Le mauvais réflexe lorsqu'on travaille sous webdev et qu'on veut récupérer les infos de version, c'est d'aller chercher du côté de ExeInfo(). Malheureusement cette fonction ne renvoie que la version du moteur d'exécution webdev du serveur. soit 23.x.x.x par exemple si vous interrogez la version sous webdev 23. Or, à chaque compilation d'une application webdev, un fichier bibliothèque <nomduprojet>.WDL est généré et c'est lui qui va nous renseigner sur notre produit. Le palliatif, c'est donc d'utiliser la fonction ComposantInfo() dont vous trouverez de plus amples explications sur le site de PCSOFT :Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! Pour simplifier l'usage et la récupération de ces éléments, j'ai concocté une procédure InfoSite() qui renvoie une structure de type StructInfoSite qui renseigne directement sur ces éléments. L'usage est simple et efficace , par exemple pour récupérer la version et le copyright : ceci affichera par exemple "COPYRIGHT MA SOCIÉTÉ 2018 VERSION 1.00Bc du 20/01/2018 14:32" ATTENTION : InfoSite().VersionProjet donne une chaîne vide sur un site déployé, préférez Infosite().Version, qui donnera bien la version déployée dans tous les cas, par exemple "1.00Aa". Code (Windev): [SIZE=3][B] LA STRUCTURE STInfoSite (à placer dans les déclarations d’une collection de proc. serveur) :[/B][/SIZE] StructInfoSite est une Structure Succès est un booléen Copyright est une chaîne NuméroDePatch est une chaîne Propriétaire est une chaîne Société est une chaîne Version est une chaîne VersionCompatible est une chaîne VersionInterne est une chaîne VersionProjet est une chaîne DateHeureDeCompilation est une DateHeure // un élément à part, mais bien utile DateHeureDeCompilFormatée est une chaîne // pour affichage en texte, de la même date FIN [SIZE=3][B]LA PROCEDURE INFOSITE (à placer dans une collection de procédures serveur) :[/B][/SIZE] PROCÉDURE InfoSite(LOCAL sBiblioWDLDuProjet est une chaîne = "") : StructInfoSite localinf est un StructInfoSite localinf.Succès = Faux // en général, ça marche sans préciser le paramètre .WDL, si la bibliothèque déployée a le même nom que notre projet. SI sBiblioWDLDuProjet = "" ALORS sBiblioWDLDuProjet =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!())+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(piNomProjet)+".WDL" // si la bibliothèque n'existe pas, on renverra la structure vide, avec .Succès = faux SI PAS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(sBiblioWDLDuProjet) ALORS RENVOYER localinf // récupération des différentes données disponibles depuis la bibliothèque compilée AVEC localinf .Copyright = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("",ciCopyright,sBiblioWDLDuProjet) .NuméroDePatch = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("",ciNuméroPatch,sBiblioWDLDuProjet) .Propriétaire = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("",ciPropriétaire,sBiblioWDLDuProjet) .Société = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("",ciSociété,sBiblioWDLDuProjet) .Version = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("",ciVersion,sBiblioWDLDuProjet) .VersionCompatible =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("",ciVersionCompatible,sBiblioWDLDuProjet) .VersionInterne =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("",ciVersionInterne,sBiblioWDLDuProjet) .VersionProjet = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("",ciVersionProjet,sBiblioWDLDuProjet) .DateHeureDeCompilation = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(sBiblioWDLDuProjet,"",fCréation) .DateHeureDeCompilFormatée =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(.DateHeureDeCompilation,8),maskDateSystème) + " " +Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(.DateHeureDeCompilation,9,4),"HH:MM") .Succès = Vrai // ici on a pu extraire les infos de la bibliothèque FIN // renvoi de la structure ainsi chargée RENVOYER localinf [SIZE=3][B]Comment utiliser la fonction dans vos programmes (dans le code clic serveur d’un bouton par exemple) :[/B][/SIZE] // 1) méthode optimisée (un seul appel à la fonction charge une structure) : SIS est une StructInfoSite = InfoSite() SI SIS.Succès ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(SIS.Copyright + "VERSION " + SIS.VersionProjet + " du " +SIS.DateHeureDeCompilFormatée) FIN // 2) Méthode pratique (pas de variable à déclarer) via l'accès direct à la structure de retour // (mais plusieurs appels de fonction, donc un peu plus lourd en traitement) SI InfoSite().Succès ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(InfoSite().Copyright + " VERSION " + InfoSite().version + " du //" +InfoSite().DateHeureDeCompilFormatée) FIN [code]