Créer un système de mise à jour automatique

Bonjour, je crée des petits logiciels et je voudrais que quand on le lance le programme cherche si il y à d’éventuels mise à jour.

J’aimerais un programme qui le fais ou un code tout prêt si possible.

Merci d’avance.

Je sais pas si ça existe mais sinon tu doit pouvoir faire une petit script tout simple qui va récupérer la “Dernière version du logiciel” dans un page web (un script CGI ou encore une servlet) et après tu compares avec la version de ton exe. Si égal (ou supérieur en cas d’un oubli) Ok sinon prévenir qu’il faut télécharger la mies à jour

Mais comment faire pour prévenir. je ne peut pas savoir à l’avance l’url de mon fichier une fois uploadé. Je suis un peu perdu :frowning:

Tu fais comment pour mettre à disposition tes logiciels ?

L’idée, mais je ne l’ai jamais fait. C’est de définir une url qui pointe dans le répertoire qui contient ton programme.
Dans ton code du prog, tu testes le contenu de l’url pour voir s’il y a eu des changements (critères que tu définiras bien sur) et si changement, tu alertes l’utilisateur.

Je pense que tu devrait t’inspirer du code source de Paint .NET (une alternative de ms paint gratuit tout en étant proche d’un photoshop en terme de fonctionnalités). A moins que Paint .NET ne propose plus en téléchargement le code source de l’appli.

En fait ce que je veux dire c’est:
Dans le code source de tes application: tu met au démarrage un petite bout de code qui envoie une requête sur internet (si possible : pc connecté à internet)
vers script (CGI, Java, php, à toi de voir) auquel tu passe en paramètre le nom (ou l’id) de l’application.
Ce script a pour fonction de renvoyer le numéro de version de la dernière version du logiciel passé en paramètre, information qu’il trouve dans un base donnée (xml ou csv si tu n’a que le numéro de version à stoker, SQL si tu as déjà sur ton site une base SQL qui tourne)
Donc, ton exécutable compare son propre numéro de version avec celui récupéré depuis le script internet et indique si une mise à jour est disponible et/ou nécessaire

J’ y ai déjà pensé mais voila le soucis c’est que l’url je ne la connais pas d’avance (je passe par archivehost et l’url contient des éléments qui changent suivant la date).

C’est pour ca que généralement c’est mieux devoir un nom de domain à toi, avec un serveur à toi, l’histoire d’etre certain de l’emplacement de ton fichier contenant l’indication de la derniere version de ton logiciel :slight_smile:

Oui mais l’url ne change pas tous les jours, si tu utilise un systéme de stockage ftp libre ben tu récupére ton url et tu modifie l’url pour telecharger

Bien entendu ton URL n’est pas en brute dans ton script mais dans un fichier ou ton script va la récupérer.
Mais tu as pas du tout de site Web? Tu fais que fournir les logiciels, ou tu as aussi ton site perso ?

J’ai un site.

Mais le FTP accepte que les images et les pages html/php/xml/…
pas de .exe/rar/zip/…

Un petit up si vous avez des idées.

Un fichier php/xml fait tres bien l’affaire

Argh je suis pas mal faché avec le php. Par contre si tu peut me montrer ce que sa peut donner pourquoi pas mais en général le php j’y arrive pas…
Xml jamais essayé…

Sur ton Site y a une Base de données?

Base de données MySQL oui.

MySQL - 5.0.27
Edité le 22/02/2010 à 09:28

Ben dans ta base tu rajoute une table (si tu en as pas déjà une)
Qui contient comme champ (id,nom du Software, version, url, clefLogiciel) ta clef logiciel est un nom raccourcis qui serai clef primaire pour te faciliter la vie.

Ensuite tu rajoute deux script php:

  • 1 : un qui lis la version du logiciel et qui te la retourne

function getVersionSoft($clefLogiciel){
   mysql_connect(HOST, USER, MDP);
   mysql_select_db(DB);
   $return = mysql_query("SELECT version,url FROM softwareTable WHERE clefLogiciel = $clefLogiciel");
   $data = mysql_fetch_array($return);

  return "version : $data['version'], url : $data['url']";  
}

  • 2: un qui te permet de tenir a jour la version et l’url (tu pourras te débrouiller pour le code)

je suis pas spécialiste php mais un truc dans le genre devrai fonctionner

Ouais mais mon code je le met ou? Je comprend pas trop.

Autant dans la base de données sa va être vite fait.

Vu que mes logiciels sont en DOS (ils appellent des programmes en Delphi mais sa passe par un logiciel, etc donc la dessus je pourrais pas mettre de PHP). Je vois pas comment il pourra se connecter (en fait je ne connais que le PHP dans les sites web et non dans les logiciels).

Tes script php tu les mets dans ton site web et pour les appeler celui qui te retourne la dernière version de ton soft tu utilise un requete http dans le source de tes softs

Donc pour le script je le met dans une page (ou va l’appeler script.php :p)
Et dans mon code je fais

www.feitan.blackapplehost.com…

il manque un truc mais je vois vraiment pas quoi --’ en sachant que c’est pas du C ou du Java (la je pense que j’aurais compris qu’il y avait intéraction). Avec du DOS j’ai un peu de mal… (commande FTP?)

Tu dois bien pouvoir faire une requête http avec delphi
après tu lis ta réponse
Edité le 22/02/2010 à 13:39