[..] Barre de progression

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Shade
Niveau 4
Niveau 4
Messages : 74
Enregistré le : mar. 16 nov. 2010 13:32
Status : Hors ligne

[..] Barre de progression

#1

Message par Shade »

Bonjour à tous,
Voila je viens de réaliser un script qui me permet de télécharger des fichiers de mon ftp en revanche, j'aimerai avoir une barre de progression car en ce moment je ne vois pas du tout l'avancement.

Pouvez-vous m'aider svp?

Voici mon script :
► Afficher le texte
Merci d'avance.

Cordialement.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..]Barre de progression

#2

Message par PandiPanda »

Avec InetGetSize ( "URL" [, options ] )qui retourne la taille du fichier
Avec InetGetInfo( [ handle [, index ]] ) index à 1 pour vérifier la taille du fichier en cours de téléchargement
Avec GUICtrlCreateProgress ( left, top [, width [, height [, style [, exStyle]]]] )
et GUICtrlSetData ( controlID, data [, default] )

Vous devriez être capable de créer une barre de progression non?
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Shade
Niveau 4
Niveau 4
Messages : 74
Enregistré le : mar. 16 nov. 2010 13:32
Status : Hors ligne

Re: [..]Barre de progression

#3

Message par Shade »

Oui mais ou est ce qu'il faut que je place les fonctions?
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Barre de progression

#4

Message par PandiPanda »

Ceci ?
► Afficher le texte
Pour telechargeProgress($ctrlId); le ctrlID est celui de la progress Barre
Pour _SetProgress($ctrlId,$SizeFile,$SizeDownload); le ctrlId est celui de la progress Barre,$SizeFile est la taille totale du fichier et $SizeDownload est la taille du fichier en cours de telechargement.

Il ne vous reste qu'a créer une gui pour la barre de progression, et d'y induire le ctrlID.

j'ai fait ceci sans tester, il y'a peut être une erreur, à vérifier, tester ^^
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Shade
Niveau 4
Niveau 4
Messages : 74
Enregistré le : mar. 16 nov. 2010 13:32
Status : Hors ligne

Re: [..] Barre de progression

#5

Message par Shade »

Et la GUI je la crée à la suite du code de la barre de progression?
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Barre de progression

#6

Message par PandiPanda »

vous créer la gui, avant le "guiState()" ^.^
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Shade
Niveau 4
Niveau 4
Messages : 74
Enregistré le : mar. 16 nov. 2010 13:32
Status : Hors ligne

Re: [..] Barre de progression

#7

Message par Shade »

Auriez-vous un exemple de Gui pour une barre de progression svp?
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Barre de progression

#8

Message par PandiPanda »

le fichier d'aide aurai pu vous mettre sur la voie ...
GUICtrlCreateProgress()
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Shade
Niveau 4
Niveau 4
Messages : 74
Enregistré le : mar. 16 nov. 2010 13:32
Status : Hors ligne

Re: [..] Barre de progression

#9

Message par Shade »

Code : Tout sélectionner

$progressbar = GUICtrlCreateProgress(10, 40, 200, 20, $$ctrlId)
GuiSetState ( )
C'est bon comme ça?
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Barre de progression

#10

Message par PandiPanda »

ceci vous convient?
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Shade
Niveau 4
Niveau 4
Messages : 74
Enregistré le : mar. 16 nov. 2010 13:32
Status : Hors ligne

Re: [..] Barre de progression

#11

Message par Shade »

Le code fonctionne mais la barre de progression devient complète en 1 sec alors que le téléchargement est à 40 Mo sur 2Go???
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Barre de progression

#12

Message par PandiPanda »

étrange avec le script que j'ai poster plus haut, je n'ai pas cette erreur la ...
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Shade
Niveau 4
Niveau 4
Messages : 74
Enregistré le : mar. 16 nov. 2010 13:32
Status : Hors ligne

Re: [..] Barre de progression

#13

Message par Shade »

Le fichier sur lequel vous testez votre script il ne fait peut être pas 2Go ou 11Go ?
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Barre de progression

#14

Message par PandiPanda »

en effet loin de la haha ^^
vous pouvez mettre une msgbox(0,"",$sizeFile)

comme ceci;

Code : Tout sélectionner

    ...
msgbox(0,"",$sizeFile)
    Do
        Sleep(250)
        $info=InetGetInfo($hDownload)
        _SetProgress($progressbar,$SizeFile,$info[1])
    Until $info[2]
...
et quelle est la valeur renvoyé par la msgBox() ? ^^

il se peux que la taille totale renvoyée soit éronnée ...
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Shade
Niveau 4
Niveau 4
Messages : 74
Enregistré le : mar. 16 nov. 2010 13:32
Status : Hors ligne

Re: [..] Barre de progression

#15

Message par Shade »

Je viens d'inserer le MsgBox il me renvoi exactement la taille de mon fichier "11388669952"

Je ne comprends plus ? :(
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Barre de progression

#16

Message par PandiPanda »

La progresse barre ne fait qu'indiquer ce que nous lui disons, donc il y'a sans doute une erreur quelque part je cherche :P

Code : Tout sélectionner

Func _SetProgress($ctrlId,$SizeFile,$SizeDownload)
    GUICtrlSetData($ctrlId,Int(($sizeDownload/$SizeFile)*100))
EndFunc
la fonction est bonne ...

hmmm vous pouvez remplacer la msgbox() par un _arraydisplay(InetGetInfo($hDownload)) et ajouter l'include correspondant en haut du script? ^^

et me dire les valeurs ressortie ...
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Shade
Niveau 4
Niveau 4
Messages : 74
Enregistré le : mar. 16 nov. 2010 13:32
Status : Hors ligne

Re: [..] Barre de progression

#17

Message par Shade »

arraydisplay c'est fait mais je rajoute quel include?
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Barre de progression

#18

Message par PandiPanda »

#Include <Array.au3>

necessaire pour _ArrayDisplay()
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Shade
Niveau 4
Niveau 4
Messages : 74
Enregistré le : mar. 16 nov. 2010 13:32
Status : Hors ligne

Re: [..] Barre de progression

#19

Message par Shade »

Voici les valeurs qu'ils me renvoient:

Code : Tout sélectionner

[0]|0
[1]|0
[2]|False
[3]|False
[4]|0
[5]|0
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Barre de progression

#20

Message par PandiPanda »

Bien donc deja les valeurs concernée sont "correcte" notamment le fait qu"il dise qu'il a pas encore débuter le télechargement et que forcemment il n'a pas fini de télécharger :P

maintenant vous pouvez enlever le _arrayDisplay()

et mettre ceci a la place de votre boucle do .. until?

Code : Tout sélectionner

    Local $T0=TimerInit()
    Do
        Sleep(250)
        $info=InetGetInfo($hDownload)
        If TimerDiff($T0)> 7000 Then _ArrayDisplay($info)
        _SetProgress($progressbar,$SizeFile,$info[1])
    Until $info[2]
elle me permettra de connaitre les infos après 7 secondes ... ^.^
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Répondre