OVH Cloud OVH Cloud

Telechargement automatique

21 réponses
Avatar
Fred87
Bonjour ,

Je cherche sur l'ouverture d'un programme a v=E9rifier sur=20
un site de mise =E0 jour si la version du programme et la=20
derni=E8re =E0 jour, et tout cela en automatique bien sur et=20
en masqu=E9.
Quelles peuvent =EAtre les m=E9thodes utilis=E9s pour faire cela
"ftp" ou autre.

Le but serait de mettre =E0 jour un Logiciel (donn=E9es plus=20
programme) par internet automatiquement en avertissant=20
l'utilisateur qu'il existe une versiion disponible plus=20
r=E9cente.

Cela existe d=E9ja pour des logiciels du march=E9.

Merci d'avance pour toutes informations ou suggestions.

Fred87

10 réponses

1 2 3
Avatar
scraper
Bonjour DJ, dans le message
news:
tu disais :


l'essayer, c'est ne plus pouvoir s'en passer :-)



Ah ben je te confirme que ca marche super !!! (voir ci-dessus)



oui ;-)

genial, merci bien



à ton service :-)




--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
DJ
fred87 wrote:
Bonjour

Pour ce qui est des bout de code je suis preneur, merci d'avance.




voila deja un bon petit lien (enfin, assez pour moi ...) pour attaquer du
FTP via le composant VB msinet :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexpvb/html/issuingftpcommands.asp

ET voila le code de la partie FTP de mon usine à gaz, j'y ai ajouté
recement l'affichage d'une ProgressBar sur le formulaire (merci je sais
plus qui sur VBfrance.com) et j'ai traduit les messages retournés.
je te laisse refaire les dims ;-)

**** moulinette principale *****

'--- recupere la taille du fichier a telecharger

Inet1.URL = "ftp://" & strURL ' genre truc.monsite.fr
Inet1.Execute strURL, "size " & PathFicSource 'demande la taille du
fichier a telecharger

Do 'boucle pendant le traitement de inet
DoEvents
Loop While Inet1.StillExecuting

Taille = Inet1.GetChunk(1024) 'recuperation de la taille dans taille
Me.MyPB.Value = 0 'definition de la valeur minimum
Me.MyPB.Max = Taille 'definition de la valeur maximum

'--- telechargement du fichier

strCmd = "RECV " & PathFicSource & " " & PathFicDesti
Inet1.URL = "ftp://" & strURL ' genre truc.monsite.fr
Inet1.UserName = "NOM"
Inet1.Password = "MotDePasse"
Inet1.Execute strURL, strCmd

Do 'boucle pendant le traitement de inet
On Error Resume Next
If MyFSO.fileexists(PathFicDesti) Then
Set F = MyFSO.getfile(PathFicDesti)
Me.MyPB.Value = F.Size 'mise a jour de la valeur de la
progressbar PB
End If
DoEvents
Loop While Inet1.StillExecuting

Mess = "Resultat du transfert: " & " " & Inet1.ResponseInfo

If Inet1.ResponseCode > 0 Then
Tmp = "Impossible de recevoir " & PathFicSource & " depuis " &
strURL & vbCr & "Details:"
Tmp = Tmp & vbCr & " Erreur: " & Inet1.ResponseCode & vbCr & " " &
Inet1.ResponseInfo
MsgBox Tmp, vbOKOnly + vbCritical, "ERREUR"
End
End If

***** Fin moulinette *****

fonctions qui vont avec :



'-------------------------------------------------------------
Private Sub Inet1_StateChanged(ByVal State As Integer)

Me.Lbl_TransInfos.Caption = GetState(State)

End Sub


Function GetState(s As Integer) As String
Select Case s
Case 0
GetState = "Pas d information disponible."

Case 1
GetState = "recherche de l adresse IP du serveur distant."

Case 2
GetState = "adresse IP du serveur distant trouvée."

Case 3
GetState = "Connexion au serveur distant."

Case 4
GetState = "Connexion établie avec le serveur distant."

Case 5
GetState = "demande d information au serveur distant."

Case 6
GetState = "la demande a bien été envoyé au serveur distant."

Case 7
GetState = "reception d une reponse du serveur distant."

Case 8
GetState = "La reponse a été recu correctement du serveur distant."

Case 9
GetState = "Deconnexion du serveur distant."

Case 10
GetState = "Deconnecté du serveur distant."

Case 11
GetState = "Une erreur est survenue pendant la communication avec le
serveur distant."

Case 12
GetState = "La demande est terminée, toutes les données sont recues."

Case Else
GetState = "Etat inconnu: " & s
End Select

End Function
Avatar
scraper
Bonjour DJ, dans le message
news:
tu disais :


fred87 wrote:
Bonjour

Pour ce qui est des bout de code je suis preneur, merci d'avance.




voila deja un bon petit lien (enfin, assez pour moi ...) pour
attaquer du FTP via le composant VB msinet :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexpvb/html/issuingftpcommands.asp



[...]

j'avais cru comprendre que le composant inet était passablement buggué ?

qu'en est il ?

merci ....




--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
Christian Hubert-Hugoud
Bonjour,

Je distingue 2 choses :

charger un fichier qui contient les infos de version (le mien est en ascii).
Dans ce cas un truc du genre URLDownloadToFile() doit fonctionner très bien.
Il renvoi le contenu "texte" du fichier ascii. Après il faut le traiter pour
en tirer l'info.

ensuite et éventuellement, je download en ftp le fichier d'installation que
j'enregistre sur le disque. Une fois placé sur le disque, je lance la
fermeture de l'appli elle-même qui, au tout dernier moment, fait un shell
sur le fichier d'installation downloadé. C'est là le point critique : il
faut que l'appli se décharge de la mémoire très rapidement sans quoi le
fichier d'installation ne peut pas installer le .exe Pour cela j'utilise
inno setup qui fait retry en cas d'impossibilité de ce type. Cela marche
bien.

Christian



"fred87" a écrit dans le message de news:

Bonjour

Pour ce qui est des bout de code je suis preneur, merci d'avance.

Dans sa réponse Christian dis "je charge un fichier Ascii en http" quelle
est donc la methodes est ce en fait du ftp ??

Merci pour toutes infos

Fred87


"DJ" wrote:


"Fred87" a écrit dans le message de
news:198d01c56059$acb58420$
Bonjour ,

Je cherche sur l'ouverture d'un programme a vérifier sur
un site de mise à jour si la version du programme et la
dernière à jour, et tout cela en automatique bien sur et
en masqué.
Quelles peuvent être les méthodes utilisés pour faire cela
"ftp" ou autre.

*************

1- ben je sais pas pour quoi la mise en retrait auto marche plus ...
put**
de oe6 !

2- pour ta question : oui c'est la bonne voie je fais presque pareil :
- ne pouvant modfier l'appli elle meme, j'ai un "lanceur" qui soccupe
des maj ou lance l'appli
- pour les maj j'ai une petit fichier text genre .ini que je FTPetes
et
qui contient le numero de version
- ca me donne donc le N° de maj a recuperer et pour parer à tout type
de
maj je FTPetes un exe correspondant
qui s'occuper de faire la maj (en general un bon Zip a dezziper).

voili-voila, si tu as besoin de bout de code pour l'exemple..

DJ







Avatar
Patrice Henrio
OK.
Je comprends mieux.
J'essaierai ça un de ces jours.

"scraper" a écrit dans le message de news:

Bonjour Patrice Henrio, dans le message
news:
tu disais :


Je suis intéressé mais je ne comprends pas du tout.

je charge un fichier ascii en http





Où se trouve ce fichier ? Qu'est-il censé contenir ?



sur ton site ; des infos sur la version de la dernière mise à jour du
logiciel, l'URL de téléchargement, le poids de la mise à jour à
télécharger, les correctifs apportés par la màj etc .... ce que tu juges
utile, en fait

depuis ton logiciel, tu crées un bouton "vérifier les mises à jour" par
exemple ...

ton programme télécharge ce fichier, l'ouvre en lecture, et compare la
version que tu as inscrite avec sa propre version => traitement :-)



--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper


Avatar
scraper
Bonjour Patrice Henrio, dans le message
news:
tu disais :


OK.
Je comprends mieux.
J'essaierai ça un de ces jours.



oui .... je vois à quoi tu penses ;-)

ça serait un plus (accessible depuis le menu .... un rêve lol


--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
DJ
scraper wrote:

j'avais cru comprendre que le composant inet était passablement
buggué ?

qu'en est il ?

merci ....



Ben j'ai entendu aussi.... mais je me demandais aussi comment ca marchait
ce truc la
avant de trouver le lien que je cite alors c'est peut-etre souvent
programmé comme un goret :-)))

En tout cas ,en VB6 sp5 ca marche super chez moi pour tout un tas de poste
en 98,2000, Xp en Lan ou en Wan !

en passant, ayant le code de l'API (trouvé ici meme, merci les gars !) pour
faire de la Zoli copie de gros fichiers avec la fenetre windows (progressBar
feuilles volantes...) je ne desespere pas de trouvé le code permettant
d'avoir la meme fenetre que quand on fait du Ftp à la main via l IE !
c'est plus joli quand le transfert est un peu long...
DJ
Avatar
fred87
Bonjour,

Merci à tous pour ces informations précieuses


"DJ" wrote:

fred87 wrote:
> Bonjour
>
> Pour ce qui est des bout de code je suis preneur, merci d'avance.
>

voila deja un bon petit lien (enfin, assez pour moi ...) pour attaquer du
FTP via le composant VB msinet :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexpvb/html/issuingftpcommands.asp

ET voila le code de la partie FTP de mon usine à gaz, j'y ai ajouté
recement l'affichage d'une ProgressBar sur le formulaire (merci je sais
plus qui sur VBfrance.com) et j'ai traduit les messages retournés.
je te laisse refaire les dims ;-)

**** moulinette principale *****

'--- recupere la taille du fichier a telecharger

Inet1.URL = "ftp://" & strURL ' genre truc.monsite.fr
Inet1.Execute strURL, "size " & PathFicSource 'demande la taille du
fichier a telecharger

Do 'boucle pendant le traitement de inet
DoEvents
Loop While Inet1.StillExecuting

Taille = Inet1.GetChunk(1024) 'recuperation de la taille dans taille
Me.MyPB.Value = 0 'definition de la valeur minimum
Me.MyPB.Max = Taille 'definition de la valeur maximum

'--- telechargement du fichier

strCmd = "RECV " & PathFicSource & " " & PathFicDesti
Inet1.URL = "ftp://" & strURL ' genre truc.monsite.fr
Inet1.UserName = "NOM"
Inet1.Password = "MotDePasse"
Inet1.Execute strURL, strCmd

Do 'boucle pendant le traitement de inet
On Error Resume Next
If MyFSO.fileexists(PathFicDesti) Then
Set F = MyFSO.getfile(PathFicDesti)
Me.MyPB.Value = F.Size 'mise a jour de la valeur de la
progressbar PB
End If
DoEvents
Loop While Inet1.StillExecuting

Mess = "Resultat du transfert: " & " " & Inet1.ResponseInfo

If Inet1.ResponseCode > 0 Then
Tmp = "Impossible de recevoir " & PathFicSource & " depuis " &
strURL & vbCr & "Details:"
Tmp = Tmp & vbCr & " Erreur: " & Inet1.ResponseCode & vbCr & " " &
Inet1.ResponseInfo
MsgBox Tmp, vbOKOnly + vbCritical, "ERREUR"
End
End If

***** Fin moulinette *****

fonctions qui vont avec :



'-------------------------------------------------------------
Private Sub Inet1_StateChanged(ByVal State As Integer)

Me.Lbl_TransInfos.Caption = GetState(State)

End Sub


Function GetState(s As Integer) As String
Select Case s
Case 0
GetState = "Pas d information disponible."

Case 1
GetState = "recherche de l adresse IP du serveur distant."

Case 2
GetState = "adresse IP du serveur distant trouvée."

Case 3
GetState = "Connexion au serveur distant."

Case 4
GetState = "Connexion établie avec le serveur distant."

Case 5
GetState = "demande d information au serveur distant."

Case 6
GetState = "la demande a bien été envoyé au serveur distant."

Case 7
GetState = "reception d une reponse du serveur distant."

Case 8
GetState = "La reponse a été recu correctement du serveur distant."

Case 9
GetState = "Deconnexion du serveur distant."

Case 10
GetState = "Deconnecté du serveur distant."

Case 11
GetState = "Une erreur est survenue pendant la communication avec le
serveur distant."

Case 12
GetState = "La demande est terminée, toutes les données sont recues."

Case Else
GetState = "Etat inconnu: " & s
End Select

End Function





Avatar
scraper
Bonjour DJ, dans le message
news:%
tu disais :


en passant, ayant le code de l'API (trouvé ici meme, merci les gars
!) pour faire de la Zoli copie de gros fichiers avec la fenetre
windows (progressBar feuilles volantes...) je ne desespere pas de
trouvé le code permettant d'avoir la meme fenetre que quand on fait
du Ftp à la main via l IE ! c'est plus joli quand le transfert est
un peu long...
DJ



si tu peux récupérer la valeur du nombre de bytes téléchargés au travers de
ce contrôle (que je ne connais pas) rien ne t'empêche de dessiner toi même
une form, sur laquelle tu installes une progressbar, etc ... :-)


--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
DJ
scraper wrote:

si tu peux récupérer la valeur du nombre de bytes téléchargés au
travers de ce contrôle (que je ne connais pas) rien ne t'empêche de
dessiner toi même une form, sur laquelle tu installes une
progressbar, etc ... :-)




Absolument c'est ce que j'ai fait dans le code posté plus haut je lis la
taille du fichier en cours de download
je jai une progressbar VB. A noter qu'il me semble que ca marche pas avec
les win98 la taille restant a zero jusqu'à la fin.

Ca n'empeche que la petite fenetre qui apparait quand tu FTPetes a la main
dans lIE avec taille et temps estimé ...
ca fait vachement plus pro :-))))

j'ai trouvé un exemple de code qui utlise wininet a la place de msinet mais
c'est pas encore au point....

DJ
1 2 3