Page 1 sur 1
[..] Mise a jour automatique
Posté : dim. 07 sept. 2008 19:16
par arios
Bonjour,
je voudrait un script qui permette de mettre a jour automatiquement a chaque démarrage du logiciel.C'est a dire que quand je clique sur le fichier.exe je veut qu'il vérifie sur un serveur FTP la version du logiciel et si il y a une nouvelle version il la télécharge tout en prévenant l'utilisateur des nouvelle fonctionnalité et en demandant son accord avec une barre de progression du téléchargement si possible.
Merci d'avance
Re: [..]Mise a jour automatique
Posté : dim. 07 sept. 2008 19:30
par jbnh
Bonjour, il est très dur de faire un script avec des informations aussi peu précises. On ne sait pas le logiciel, comment on accède aux mise à jour etc...
Aussi on ne possède pas le codage du logiciel pour vérifier les maj et autoit ne peut pas s'emmeler à ce codage.
Autoit peut lancer le programme en question , apres essayer de passer manuelement sur les maj, vérifier la réponse etc...
Re: [..]Mise a jour automatique
Posté : dim. 07 sept. 2008 19:40
par arios
Enfaite j'aimerais que le programme(je ne sait pas encore se que je vais faire) fasse une mise a jour automatique c'est a dire qu'il vérifie sur un serveur FTP si il y a une mise a jour(en vérifiant si il y a une nouvelle version) puis il la télécharge et après il lance la nouvelle version en remplacent l'ancienne version.
Merci d'avance
Re: [..]Mise a jour automatique
Posté : dim. 07 sept. 2008 20:23
par timmalos
VOila un script fait il ya a longtemps avec la base dans les exemples d'Autoit.
C'etait un script très complexe, alors je pense avoir choisi seulement ce que tu voulais et mis toutes les variables dont tu as besoin, mais si j'ai oublié quelque chose, n'hesite pas:
Code qui va verifier sur Internet si la version est la derniere.
Il va chercher $s_DatFile, qui doit etre un fichier( ici update.dat ) de la forme:
► Afficher le texte
Code : Tout sélectionner
[Gwall]
version=1.5
index=http://gwall.*******.com/
setup=http://tim.****.free.fr/*****-setup.exe
filesize=4067328
filetime=60080516083702
setup est l'adresse de la derniere URL de telechargement
version est la derniere version en ligne
Le code qui suit va verifier la connexion internet, telecharger ce fichier, et si la version est superieure, va lancer le fichier gwall_update.exe que je te presente ci-après.
Code : Tout sélectionner
Global Const $s_DatFile = 'http://tim.****.free.fr/update.dat'
Global Const $s_DatFile_Local = @ScriptDir & '\au3_update.dat'
Global Const $b_Download_UpdateDat = 1
$version = "1.0" ; Version du logiciel en cours d'utilisation
;-------------------------------------------------------------
;Mise en place des conditions avant Demarrage de l'application
;-------------------------------------------------------------
;If @DesktopWidth <> "1O24" And @DesktopHeight <> "768" Then MsgBox(0, "problème de Résolution", "Les composants de [Gwall] ne sont configurés que pour une utilisation en Résolution 1024 par 768. Certains qui influent sur l'application Guildwars peuvent ne pas fonctionner convenablement. Dans les versions ultérieures ce problème sera corrigé.")
If $b_Download_UpdateDat Then
SplashTextOn("", "Vérification de la Version...Veuillez patienter", 450, 70, -1, -1, 0 + 1 + 16 + 32, "Times New Roman", 12, 800)
$inetget = InetGet($s_DatFile, $s_DatFile_Local, 1)
SplashOff()
Else
FileCopy(@ScriptDir & '\update.dat', $s_DatFile_Local) ; pour tester localement
EndIf
While 1
If $inetget = 0 And $b_Download_UpdateDat = 1 Then
$i_Res = MsgBox(6 + 64, 'Gwall:Erreur de Connexion à Internet', 'La plupart des composants de Gwall nécéssitent une Connexion Internet.' & @LF & _
"Vous pouvez tout de même lancer Gwall en cliquant sur [Continuer]" & @LF & @LF & _
"Vous pouvez également retenter de vous connecter en cliquant sur [Recommencer]," & @LF & _
'après avoir vérifié que:' & @LF & _
' - Vous êtes bien connecté à Internet' & @LF & _
' - Vous pouvez acceder au forum http://gwall.*****.com' & @LF & _
" - Votre pare-feu ne bloque pas l'accès Internet à ce programme")
If $i_Res = 10 Then
InetGet($s_DatFile, $s_DatFile_Local, 1, 1)
ElseIf $i_Res = 11 Then
ExitLoop
Else
Exit
EndIf
Else
Global $s_ReleaseVer
$s_ReleaseVer = IniRead($s_DatFile_Local, 'Gwall', 'version', 'Erreur de lecture')
FileDelete($s_DatFile_Local)
If _CompareVersions($s_ReleaseVer, $version) Then
$msgversion = MsgBox(4 + 64, "Une nouvelle Version est Disponible", "Souhaitez vous la télécharger?")
If $msgversion = 6 Then
Run(@ScriptDir & "\gwall_update.exe")
;La tu peux, au lieu de run un update.exe, lancer directement le telechargement de ton application. Voir Inetget
ExitLoop
Else
ExitLoop
EndIf
Else
ExitLoop
EndIf
EndIf
WEnd
Func _CompareVersions($s_Vers1, $s_Vers2, $i_ReturnFlag = 0)
If $s_Vers1 = '' Then Return 0
Local $i, $i_Vers1, $i_Vers2, $i_Top
Local $a_Vers1 = StringSplit($s_Vers1, '.')
Local $a_Vers2 = StringSplit($s_Vers2, '.')
$i_Top = $a_Vers1[0]
If $a_Vers1[0] < $a_Vers2[0] Then
$i_Top = $a_Vers2[0]
EndIf
For $i = 1 To $i_Top
$i_Vers1 = 0
$i_Vers2 = 0
If $i <= $a_Vers1[0] Then
$i_Vers1 = Number($a_Vers1[$i])
EndIf
If $i <= $a_Vers2[0] Then
$i_Vers2 = Number($a_Vers2[$i])
EndIf
If $i_Vers1 > $i_Vers2 Then
$v_Return = 1
ExitLoop
ElseIf $i_Vers1 < $i_Vers2 Then
$v_Return = 0
ExitLoop
Else
$v_Return = -1
EndIf
Next
If $i_ReturnFlag Then
Select
Case $v_Return = -1
SetError(1)
Return 0
Case $v_Return = 1
Return $s_Vers1
Case $v_Return = 0
Return $s_Vers2
EndSelect
ElseIf $v_Return = -1 Then
SetError(1)
Return 0
Else
Return $v_Return
EndIf
EndFunc ;==>_CompareVersions
Voila pour le debut
Ensuite, si une version superieure est detectée, alors on va lancer le fichier d'upload.
Le mien est assez modifié et très largement completé, ce n'est donc pas un bon exemple, mais il suffit d'aller dans ton dossier d'installation d'Autoit, Extras, AutoiUpdateIt.
Et modifier ce fichier a ta convenance
Il y a surement beaucoup plus facile, mais avec tout ca tu peux y arriver tranquillement

Bon courage

Re: [..] Mise a jour automatique
Posté : dim. 07 sept. 2008 20:34
par arios
merci je teste sa
Édit du 10/09/08:j'attent de recevoir les identifiant du serveur FTP et je met en place tout sa.
Re: [..] Mise a jour automatique
Posté : dim. 07 sept. 2008 22:47
par Tlem
En utilisant l'outil de recherche du forum et en tapant : 'mise a jour programme'
vous auriez pu trouver ce lien :
http://www.autoitscript.fr/forum/viewto ... +programme
Regardez le code de notre ami Voodoo et vous aurez votre solution par l'exemple.