Bonjour à tous,
j'ai lu plusieurs sujets sur la question mais aucun ne m'a vraiment apporté de solution.
Quand mon appli de gpao nécessite d'être mise à jour, je publie le nouvel exécutable sur un partage réseau dans un sous-dossier qui porte le nom de la release, et je déclare cette release dans un paramètre général de ma base de données, pour annoncer aux clients quelle est la dernière release en date. Quand le client se connecte, il compare sa propre version à celle qui est déclarée sur le serveur, et si ce n'est pas la même alors je procède à l'importation du nouvel exécutable.
Pour ce faire, je ferme mon appli gpao et je fais appel à un programme tiers (via LanceAppli juste avant la fermeture), que j'ai appelé updater.exe et qui n'a pas d'ihm, simplement il va se connecter au partage réseau et copier le nouvel exécutable en lieu et place de l'ancien.
Actuellement j'utilise l'option frJauge de fCopieFichier pour afficher une jauge qui montre le transfert. Mon problème est que en local sur le même réseau la fenêtre de copie s'affiche assez vite, dans la seconde, et le transfert dure quelques secondes (un fichier de 6Mo à transférer), donc l'utilisateur comprend ce qu'il se passe et patiente. Par contre, lorsque je suis sur un site distant, en vpn par exemple, l'apparition de la fenêtre de transfert et de la jauge ne se fait pas avant une vingtaine de secondes (surement le temps de l'établissement de la connexion au partage réseau distant) et du coup il y a risque qu'un utilisateur pas très patient pense que le transfère est fini ou qu'il y a un problème, et relance mon client de gpao, et rebelote pour la mise à jour, l'attente sans comprendre ce qu'il se passe, etc....
Du coup, j'ai décidé de mettre une toute petite fenêtre à mon programme updater.exe avec une jauge qui indique l'état de progression de la copie du fichier gpao.exe
Ce que je ne sais pas faire, c'est récupérer l'état de la copie du fichier pendant le transfert. Est-ce qu'il y aurait une possibilité de sonder toutes les 500ms le nombre d'octets transférés, et donc d'en déduire un pourcentage du transfert ?
Désolé pour la longue explication et au final une question relativement simple.
Merci à vous
Partager