AUTO-UPDATE : MISE À JOUR AUTOMATIQUE DE VOS LOGICIELS

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 9 juin 2006 à 08:04
Hydromelius Messages postés 11 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 15 février 2015 - 12 déc. 2009 à 12:18
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38019-auto-update-mise-a-jour-automatique-de-vos-logiciels

Hydromelius Messages postés 11 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 15 février 2015
12 déc. 2009 à 12:18
Bonjour, voila j'ai un ptit soucis chez moi sa marche pas quand il télécharge le .ini il le modifie comme ceci:
[MAJ_Logiciels][]Version=2.1.4[]URL=http://decf20012003.free.fr/maj/MAJ_Logiciel_Setup.exe

a la place des [] j'ai des carré et il met tout sur une seul ligne, du coup il me ressort: "Impossible de télécharger la liste des mises a jours"

pasque ce principe m'intéresse je recherche un truc dans le genre donc dans ce cas prenons le .ini je vous explique:

j'ai déjà un système de mise a jour, mais je souhaiterais l'automatiser en modifiant ce code comparer avec autre chose par exemple on a version.ini sur le disque avec l'appli il télécharge le config.ini et au lieu de comparer config.ini avec le prog il le compare avec version.ini si c'est diffèrent il lance mon système de mise a jour qui lui en même temps mettra version.ini a jour.

donc pour faire sa je pourrai surement me débrouiller et trouver un moyen mais fraudais t'il déjà que la première parti fonctionne :(
PS: j'ai repasser le code sous VB 2008, est ce que sa peut y jouer?
voila merci d'avance pour vos réponse.
massilia68 Messages postés 7 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 15 janvier 2014
28 nov. 2009 à 17:40
c'est normale que dans votre .zip il n'y a pas de fichier .exe ?
kkZ Messages postés 19 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 30 avril 2008
4 août 2009 à 12:45
Salut,
merci pour ce code, très pratique.
J'ai seulement relever un probleme de cache. en effet, le fichier qui se télécharge peut également etre dispo en cache, auquel cas, le nouveau ini n'est télécharger.
Il faut vider le cache avec :

Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
et ajouter
'On vide le cache Internet
Call DeleteUrlCacheEntry(URL)
dans la fonction DownloadPage
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
20 sept. 2008 à 11:45
euh non pas vraiment. Quel antivirus possedes tu ?
Rido159 Messages postés 22 Date d'inscription lundi 3 septembre 2007 Statut Membre Dernière intervention 23 mai 2012
20 sept. 2008 à 06:11
tres bonne source , mais est ce que c'est normal quand je crée l executable , il est détécté comme un trojan ?
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
13 déc. 2006 à 22:52
Humm, as tu regardé le code ?
3 lignes supplémentaires et le code que j'ai posté fait exactement cela
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
10 déc. 2006 à 10:36
Aucun problème, encore faut il que tu pause une question ;-)
Phsyco Messages postés 14 Date d'inscription mercredi 28 juin 2006 Statut Membre Dernière intervention 21 mars 2008
9 déc. 2006 à 15:48
Salut Je suis Nouveau dans ce genre de Coding,Puis je avoir de l'aide svp???
diablamanshadow Messages postés 419 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 28 janvier 2008
5 sept. 2006 à 16:34
ok ok donc je met dans mon projet en plus tes 4 modules + la form et quand la personne lance l'exe de mon prog je fais ouvrir en meme temp la form des maj comme ca ca devrais allez :-)

ok ok bah donc comme je disais par exemple MAJ_Logiciels est le title du programme dans l'ini donc je dois modifier MAJ_Logiciels par le title de mon appli ^^ (ainsi que le lien il en va de sois :p)

sinon voila voila je crois que ta bien repondu a tt mes quizz et je v adapter ca :p
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
5 sept. 2006 à 13:08
- Non, je ne pense pas avoir prévu que le prog supprime le fichier liste.ini après la MAJ. Mais seulement lors d'une nouvelle vérification des MAJ. Mais cela est très facile à implémenter.

- Oui, liste.ini est bien config.ini une fois renommé.

- Non [Hello World] ne correspondt à rien, c'est juste un exemple pour montrer que le fichier config.ini peut contenir la liste des MAJ de TOUT tes logiciels. Ainsi TOUT tes logiciels vérifieront leurs MAJ en téléchargeant le même fichier config.ini.
Le logiciel [MAJ_Logiciels] exite en version 2.1.4
Le logiciel [HELLOWORLD] existe en version 1.8.10
Et on peut en ajouter autant que l'on veut ;-)

- Sinon pour le choix de faire un exe à part, je suis pas très chaud. Au mieux on peut faire une DLL Ou un OCX. Mais cela compliquerait (un peu, vraiment peu) l'utilisation de la fonction. Il faudrait en effet lui passer un peu plus de parametres. Ici tout est géré de façon automatique. Puisque tout est intégré, le logiciel connait évidemment son propre nom et sa version. Tu aura remarqué que le nom entre les [ ] dans le fichier config.ini correspond exactement au App.Title de mon projet exemple.
Mais rien n'empeche que faire une DLL et de lui passer le App.Title et la version en parametre.

++
diablamanshadow Messages postés 419 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 28 janvier 2008
5 sept. 2006 à 11:58
aaaaaaaaaaa ok j'ai compris en faite liste.ini n'est pas la au demarrage du logiciel ! en faite je dois juste donne l'exe , quand le mec lance l'exe bah l'exe telecharge config.ini depuis mon server et le renomme en list.ini et ensuite seulement il le lis et alors il verif entre ce qui a dans liste.ini qui est en faite config.ini et la version de mon prog !

je crois que j'ai compris mais euh vaut mieux que j'ajoute ca en form a mon logiciel ou que je fasse un exe a pars du mien appeler Upadate.exe ou quoi que je lancerais en meme temp que mon appli ?

enfin sinon oui tu as repondu au 3/4 de mes quizz et le quart qui reste ses pas grave j'ai trouver ^^

donc en gros l'exe telecharge config.ini qui est renommer en local en liste.ini mon prog lis le liste.ini et compare sa version par rapport a celui de l'ini ensuite il dit qui a une mise a jour ou non ^^ ensuite une fois qu'il la lu il le kill ?

enfin voila en gros mes quizz sont juste :

-est ce que apres lecture de l'ini le prog le kill ?
-est-ce que liste.ini est bien en faite config.ini telecharger depuis l'exe mais renommer ?
-je vois que tu met [Hello World] (car me souvient plus de l'autre nom) ce nom correpond a quoi en faite exactement ? au nom du logiciel sans le .exe ? a une caption ? ... ?
-vaudrais t'il mieux faire un exe d'update lancer en meme temp que mon prog ou instaurer dans mon prog une frm en plus etc ?

voila je crois que j'ai plus que ses quatre quizz la ^^
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
5 sept. 2006 à 11:20
Salut,

Tu fais une confusion entre config.ini et liste.ini.
Il s'agit en fait du même fichier.
Le programme telecharge le fichier config.ini et le nomme liste.ini (simple choix perso, on aurait pu laisser le nom config.ini ou n'importe quel autre).
Puis on vérifie dans le fichier liste.ini la dernière version de notre logiciel pour savoir s'il faut faire une MAJ.

Il n'est donc pas possible de modifier le config.ini sans avoir les codes d'acces au serveur. (essai donc de modifier mon config.ini sur le site decf20012003.free.fr).

Cependant, une fois le fichier ini telechargé rien n'empeche l'utilisateur de modifier l'URL du fichier à telecharger avant de lancer l'install.
Mais cette modification n'aura aucune conséquence pour les autres poste qui ont le même logiciel.
Donc pas grand risque : je ne vois pas pourquoi quelqu'un s'amuserait à ça, vu que cette modif ne concernera que son poste. Si le gars à l'URL d'un virus et qu'il veut l'installer son sur poste, il va directement le telecharger et l'installer.

Je sais pas si j'ai répondu à toutes tes questions. Sinon dis-le moi.

++
diablamanshadow Messages postés 419 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 28 janvier 2008
5 sept. 2006 à 02:10
bon ata je verifie si j'ai bien compris car j'ai relooker le code source pour recomprendre le fonctionnement ^^
je donne mon exe + liste.ini au dit client quand le prog s'ouvre il look l'ini config qui se trouve sur mon server ensuite il le telecharge et le compare avec liste.ini si la version contenue dans config.ini est plus elevee que celle du liste.ini "locale" de l'utilisateur alors il dit qui a plus recent , donne la version de la mise a jour etc et propose le telechargement sinon il met vous avez la version la plus recente ^^
s'il y a une nouvelle version et qu'il click sur installer il telecharger l'exe contenu dans la variable url du liste.ini
jusque la je pense avoir juste ^^'

ce que je comprend pas ses pour les fichiers ini coter version et url en faite :-/ liste.ini dois contenir la version du logiciel actuelle + l'url du fichier d'une potentiel mise a jour sa apparement j'ai juste ^^

et dans le ini du server ftp donc config.ini tt est pareil que dans liste.ini sauf la version (pour la comparaison) donc liste.ini version actuelle du prog et config.ini version de la mise a jour donc a chaque fois qu'on fait une maj il faut modifier le config ?

sinon en gros admettons il click sur installer sa telecharge l'exe de liste.ini et puis sa remplace les donnee de liste.ini par config.ini ?

voila voila je sais pas si j'ai ete totalement clair mais normalement c'est comprehensible et je pense que l'essentiel de mes questions sont bien la ^^

a oui j'oubliais -_- si le ptit con dit client modifie liste.ini sa risque pas de poser probleme ? car je vois bien vennir le mec remplacer l'url de l'ini par un virus puis il distribue sa nouvelle version de mon logiciel et les gens se contamine puis on dit que ses ma faute ... ses possible ca ?

merci d'avance
Diablaman
diablamanshadow Messages postés 419 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 28 janvier 2008
5 sept. 2006 à 01:37
pourrais tu m'exposer plus clairement ta source au vu que maintenant j'utilise des mise a jour plus grosse mon system ne suis plus (maj trop grosse ^^ et sa fige mon prog)

donc si tu pouvais mettre une petite explications rapide se serais sympa ^^
genre je tape koi ou quand etc ^^
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 juin 2006 à 11:41
on regrette presque que l'URL de récupération de la liste soit en dur :
sURL = "http://decf20012003.free.fr/maj/config.ini"
diablamanshadow Messages postés 419 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 28 janvier 2008
9 juin 2006 à 11:32
ouais je vois mais je prefere ma soluce elle me suffit largement pour le momment au vu que mes update sont mineur et generalement quand ses des major je met un nouveau setup complet en telechargement ^^
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
9 juin 2006 à 11:29
Merci DIABLAMANSHADOW. Effectivement il s'agit d'une question de choix. Cela dit tu peux également faire la même chose avec mon code, il suffit de l'adapter, et cela ne demanderai que très peux de modif.
J'aurais par contre effectivement plus de 17 ligne ^^

Cela dit, j'avais pensé à ta solution mais j'ai préféré l'utilisation du fichier ini (un xml irai également très bien, mais le ini suffit largement ici) car il m'offre un peu plus de possibilités.
1°- Seul ce fichier doit resté à la même adresse. J'ai ainsi le choix stocker mes Setup sur le serveur que je veux car sont URL est stockée dans le .INI

2°-Rien n'empêche par la suite de mettre plusieurs lien dans le fichier ini du type :
[MAJ_Logiciels]
Version=2.1.4
URL=http://decf20012003.free.fr/maj/MAJ_Logiciel_Setup.exe
URL2=http://MonAutreSite.free.fr/maj/MAJ_Logiciel_Setup.exe

Si le premier lien est mort on essai le 2ème.

Bonne prog
++
diablamanshadow Messages postés 419 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 28 janvier 2008
9 juin 2006 à 11:06
bien comme source moi je fesais encore plus simple je mettais un bt mise a jour (si le mec click dessus ses qui la veut ....) donc y click dessus et il essaye de telecharger un fichier sur un server (l'url est dans le prog) si il arrive a le telecharger ses que je l'ai mis sinon il dit qu'y a pas de maj si y en a une il la download et il l'execute puis se ferme et cette new apli kill l'ancienne et dans la new je met une new url cellde la prochaine version et idem si elle peut etre telecharger nikel sinon ses que j'ai pas fait de maj ^^
sa prend en tt 17 lignes de code ^^

bien a vous
Diablaman

ps: (un ptit 8 s'impose car jm bien ton prog et ses bien penser ^^)
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
9 juin 2006 à 11:03
oui lol, j'ai tapé trop vite...
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
9 juin 2006 à 10:55
Un peu dessus et un peu déçu : voilà un joli lapsus orthographique :-)
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
9 juin 2006 à 09:41
Interressant, j'ai malheureusement encore un peu de mal avec le .NET
A vrai dire je travaille un peu deçu mais à la façon de VB6.
Je perds donc tout les avantages et nouvelles fonctionnalités du .NET. Par contre je me trimbale sa 'lenteur'.

++
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
9 juin 2006 à 08:28
Bien. Cette fonctionnalité à maintenant été intégrée au framework DotNet2 (cf. VB 2005, la version Express est gratuite).
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
9 juin 2006 à 08:08
Merci,
Sinon, ton commentaire viens de se croiser avec une petite MAJ
++

PS : Je suis ouvert à toute optimisation.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 juin 2006 à 08:04
Sympatique ^^
Rejoignez-nous