[R] Téléchargement avec ProgressSet

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

[R] Téléchargement avec ProgressSet

#1

Message par sozary »

Bonjour à tous.

But:
Je voudrais télécharger un fichier un peu lourd (ubuntu avec ses 970 Mb), avec la fonction InetGet().

Je voudrais également qu'il soit affiché le % de téléchargement.

Soucis:

Je ne m'y connais pas encore assez, et mon code donne ça:

Code : Tout sélectionner

Global $name="ubuntu.iso"
$download=InetGet("http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-i386.iso",$name)
ProgressOn($name&" download","Please wait","0%")
$cent=InetGetInfo($download)/100
While InetGetSize($name)<InetGetInfo($download)

    Progressset(InetGetSize($name)/$cent,(InetGetSize($name)/$cent)&"%")
WEnd
ProgressOff()
run($name)
Le fichier se télécharge bien, mais aucune barre de progression n'est affiché.
Merci d'avance pour votre aide
Modifié en dernier par sozary le dim. 24 août 2014 21:01, modifié 1 fois.
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Téléchargement avec ProgressSet

#2

Message par jguinch »

sozary a écrit :Le fichier se télécharge bien, mais aucune barre de progression n'est affiché.
Oui, normal. Regarde dans la doc l'exemple de la fonction InetGetInfo.
Pour connaître l'avancement, il faudra faire un règle de 3, en utilisant InetGetSize et InetGetInfo.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

Re: [..] Téléchargement avec ProgressSet

#3

Message par sozary »

une règle de 3? Mais ce que je veux c'est faire une progress barre qui s'implémente de 1% tous les ($BitsTelecharge/($TailleTotalDuFichierSource/100))!
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Téléchargement avec ProgressSet

#4

Message par orax »

jguinch a écrit :Oui, normal. Regarde dans la doc l'exemple de la fonction InetGetInfo.
Et regarde aussi le paramètre "background" de InetGet car par défaut InetGet attend que le fichier soit téléchargé. En d'autres termes, par défaut, l'instruction qui suit InetGet ne sera exécutée qu'après la fin du téléchargement.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

Re: [..] Téléchargement avec ProgressSet

#5

Message par sozary »

Code : Tout sélectionner

#include <InetConstants.au3>
#include <MsgBoxConstants.au3>
Global $name="ubuntu.iso"
$download=InetGet("http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-i386.iso",$name, $INET_FORCERELOAD ,  $INET_DOWNLOADBACKGROUND )
$cent=InetGetInfo($download,$INET_DOWNLOADSIZE)/100
;ProgressOn($name&" download","Please wait","0%")

do
MsgBox(0,"",InetGetSize($name)/$cent)
    ;Progressset(InetGetSize($name)/$cent,(InetGetSize($name)/$cent)&"%")
Until InetGetInfo($download, $INET_DOWNLOADCOMPLETE)

;ProgressOff()
run($name)
ne marche pas!
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Téléchargement avec ProgressSet

#6

Message par jguinch »

InetGetInfo($download,$INET_DOWNLOADSIZE) doit être dans la boucle :roll:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Téléchargement avec ProgressSet

#7

Message par mikell »

Et c'est $INET_DOWNLOADREAD qu'il faut utiliser :roll:

Code : Tout sélectionner

#include <InetConstants.au3>
#include <MsgBoxConstants.au3>

Global $name="autoit-v3-setup.exe"

$file = "https://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe"
ProgressOn($name&" download","Please wait","0%")
$size = InetGetSize($file)
$download = InetGet($file, $name, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND )

do
   $pcent = InetGetInfo($download, $INET_DOWNLOADREAD)*100/$size
   ProgressSet($pcent, Round($pcent, 2) & " %")
   Sleep(250)
Until InetGetInfo($download, $INET_DOWNLOADCOMPLETE)

ProgressOff()
 
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

Re: [..] Téléchargement avec ProgressSet

#8

Message par sozary »

Oui bon! Sa va hein :mrgreen: !! Merci!
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Répondre