Page 2 sur 2
Re: [..] Barre de progression
Posté : lun. 29 août 2011 16:30
par Shade
Re: [..] Barre de progression
Posté : lun. 29 août 2011 16:44
par PandiPanda
je pense avoir trouvé le problème, il suffirait de mettre ceci;
vous pouvez enlever l'include superflu, ainsi que _arrayDisplay()
^^
Re: [..] Barre de progression
Posté : lun. 29 août 2011 16:57
par Shade
Merci cela fonctionne!
Re: [..] Barre de progression
Posté : mar. 30 août 2011 08:57
par Shade
J'ai encore une petite question est-ce que l'on peut gerer le temps de téléchargement en dessous de la barre de progression?
Re: [..] Barre de progression
Posté : mar. 30 août 2011 12:46
par PandiPanda
ca devrai être gérable, du genre vous regarder en 10 seconde combien vous avez télécharger sur le totale du fichier, et avec une règle de 3 et quelque transformation mathématique de base ca devrai le faire

Re: [..] Barre de progression
Posté : mar. 30 août 2011 12:51
par Shade
Ok merci. Je devrais réussir tout seul en cas de problème je fais appel à vous lol
Re: [..] Barre de progression
Posté : mar. 30 août 2011 14:07
par PandiPanda
Etant donné que j'avais un script similaire qui restait au fin fond de mon PC =P
je l'ai un peu modifié et devrai faire ce que vous désiré :O
► Afficher le texte
Code : Tout sélectionner
Global $InfoTime=0; permet de sauvegarde la taille "ancienne" du fichier pour faire une comparaison.
MsgBox(0,"",_Time(500,5000000,10))
#cs _Time($DL_Now,$SizeMaxDL,$Time)
> $DL_Now: la taille en cours de téléchargement
> $SizeMaxDL: la taille totale du fichier
> $Time: le temps mit a télécharger le fichier actuellement (en seconde)
#ce
Func _Time($DL_Now,$SizeMaxDL,$Time)
Local $VitesseDL=(($DL_Now-$InfoTime)/$Time);Ko/sec
$InfoTime=$DL_Now; pour permettre d'appeler plusieur la fonction sans modifier le temps
Local $sec=Int($SizeMaxDL/$VitesseDL) ; seconde
Return HMS($sec)
EndFunc
Func HMS($sec); transformation en H:M:S grace à des seconde ^^
Local $heure,$minute,$seconde
$heure=Int($sec/3600)
$sec=$sec-($heure*3600)
$minute=Int($sec/60)
$seconde=$sec-($minute*60)
Return $heure&":"&$minute&":"&$seconde
EndFunc
Re: [..] Barre de progression
Posté : mar. 30 août 2011 14:45
par Shade
Et ce bout de code je le place ou dans mon script?
Re: [..] Barre de progression
Posté : mar. 30 août 2011 15:24
par PandiPanda
Comme ceci;
^^
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
;Déclaration des variables
Global $InfoTime=0
Global $TimeToTest
Global $Gestion = GUICreate("Masters VirtualBox", 251, 193, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "quitter")
Global $Label = GUICtrlCreateLabel("Time:/", 160, 104, 76, 25)
Global $Progress = GUICtrlCreateProgress(8, 152, 233, 17)
Global $telecharger_1 = GUICtrlCreateButton("Télécharger", 160, 28, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent( -1,"telecharge")
Global $quitter_1 = GUICtrlCreateButton("Quitter", 160, 66, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent( -1,"quitter")
$Group1 = GUICtrlCreateGroup("Choix des masters", 8, 10, 129, 135)
$fichier3 = GUICtrlCreateCheckbox("fichier3", 24, 34, 97, 17)
GUICtrlSetOnEvent( -1,"checkbox")
$fichier2 = GUICtrlCreateCheckbox("fichier2", 24, 74, 97, 17)
GUICtrlSetOnEvent( -1,"checkbox")
$fichier1 = GUICtrlCreateCheckbox("fichier1", 24, 114, 97, 17)
GUICtrlSetOnEvent( -1,"checkbox")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Options = GUICtrlCreateMenu("&Options")
$Telecharger = GUICtrlCreateMenuItem("Télécharger", $Options)
GUICtrlSetOnEvent( -1,"telecharge")
$Quitter = GUICtrlCreateMenuItem("Quitter", $Options)
GUICtrlSetOnEvent( -1,"quitter")
GuiSetState ( )
Dim $a_telecharge[4][1]
;Fin des déclarations
;Choix des Masters à télécharger
Func checkbox()
Switch @GUI_CtrlId
Case $fichier3
If _Ischecked($fichier3) then
$a_telecharge[1][0] = "1"
Else
$a_telecharge[1][0] = "0"
EndIf
Case $fichier2
If _Ischecked($fichier2) then
$a_telecharge[2][0] = "1"
Else
$a_telecharge[2][0] = "0"
EndIf
Case $fichier1
If _Ischecked($fichier1) then
$a_telecharge[3][0] = "1"
Else
$a_telecharge[3][0] = "0"
EndIf
EndSwitch
EndFunc
Func telechargeProgress($ctrlId)
Local $hDownload,$SizeFile
$Statut_Checkbox1 = GUICtrlRead($fichier3)
$Statut_Checkbox2 = GUICtrlRead($fichier2)
$Statut_Checkbox3 = GUICtrlRead($fichier1)
If $Statut_Checkbox1 = "1" then
$SizeFile=InetGetSize("ftp://192.168.***.***/fichier/fichier3")
$hDownload=InetGet("ftp://192.168.***.***/fichier/fichier3", "C:\Temp" & "\fichier3", 1, 1)
EndIf
If $Statut_Checkbox2 = "1" then
$SizeFile=InetGetSize("ftp://192.168.***.***/fichier/fichier2")
$hDownload=InetGet("ftp://192.168.***.***/fichier/fichier2", "C:\Temp" & "\fichier2", 1, 1)
EndIf
If $Statut_Checkbox3 = "1" then
$SizeFile=InetGetSize("ftp://192.168.***.***/fichier/fichier1")
$hDownload=InetGet("ftp://192.168.***.***/fichier/fichier1", "C:\Temp" & "\fichier1", 1, 1)
EndIf
$TimeToTest=TimerInit()
Do
Sleep(250)
$info=InetGetInfo($hDownload)
If TimerDiff($TimeToTest) >= 10000 Then _Time($Label,$info[1],$info[0],10)
_SetProgress($Progress,$info[1],$info[0])
Until $info[2]
MsgBox(64, "téléchargement fichier", "Fin du téléchargement")
ProcessClose("Install_auto.exe")
EndFunc
Func _SetProgress($ctrlId,$SizeFile,$sizeDownload)
GUICtrlSetData($ctrlId,Int(($sizeDownload/$SizeFile)*100))
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func quitter()
Exit
EndFunc
Func _Ischecked($control)
Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED
EndFunc
Func _Time($ctrlID,$DL_Now,$SizeMaxDL,$Time)
Local $VitesseDL=(($DL_Now-$InfoTime)/$Time);Ko/sec
$InfoTime=$DL_Now; pour permettre d'appeler plusieur la fonction sans modifier le temps
Local $sec=Int($SizeMaxDL/$VitesseDL) ; seconde
GUICtrlSetData($ctrlID,"Time: "&HMS($sec))
$TimeToTest=TimerInit()
EndFunc
Func HMS($sec); transformation en H:M:S grace à des seconde ^^
Local $heure,$minute,$seconde
$heure=Int($sec/3600)
$sec=$sec-($heure*3600)
$minute=Int($sec/60)
$seconde=$sec-($minute*60)
Return $heure&":"&$minute&":"&$seconde
EndFunc
;Fin du script
Re: [..] Barre de progression
Posté : mar. 30 août 2011 15:44
par Shade
ERROR: $Label: undeclared global variable.
If TimerDiff($TimeToTest) >= 10000 Then _Time($Label,
Voici l'erreur que j'obtiens??!
Re: [..] Barre de progression
Posté : mar. 30 août 2011 16:05
par PandiPanda
vous avez copier/coller exactement mon script plus haut? ^^
Re: [..] Barre de progression
Posté : mar. 30 août 2011 16:14
par Shade
Oui, mais j'ai regardé avant il y a juste label qui ne fonctionne pas!
Re: [..] Barre de progression
Posté : mar. 30 août 2011 17:12
par PandiPanda
hmmmm étrange ...
bon et avec ceci?
remplacer la fonction _Time() par celle ci;
Code : Tout sélectionner
Func _Time($DL_Now,$SizeMaxDL,$Time)
Local $VitesseDL=(($DL_Now-$InfoTime)/$Time);Ko/sec
$InfoTime=$DL_Now; pour permettre d'appeler plusieur la fonction sans modifier le temps
Local $sec=Int($SizeMaxDL/$VitesseDL) ; seconde
GUICtrlSetData($Label,"Time: "&HMS($sec))
$TimeToTest=TimerInit()
EndFunc
et remplacer
dans le do ... until
par ceci;
Code : Tout sélectionner
If TimerDiff($TimeToTest) >= 10000 Then _Time($info[1],$info[0],10)
$Label est-il bien déclarer en Global, en haut du script? ^^
Re: [..] Barre de progression
Posté : mar. 30 août 2011 17:22
par Shade
Non je viens de vérifier et il n'est pas déclaré!
Re: [..] Barre de progression
Posté : mar. 30 août 2011 17:41
par PandiPanda
Dans ce cas, il suffirai de le declarer xD ^^
Re: [..] Barre de progression
Posté : mar. 30 août 2011 20:19
par Shade
Malheureusement je ne pourrais pas vérifier le script car le ftp est à mon boulot, je vous tiens au courant demain.
Re: [..] Barre de progression
Posté : jeu. 01 sept. 2011 15:51
par Shade
Et je la déclare avec quel argument???
Re: [..] Barre de progression
Posté : jeu. 01 sept. 2011 15:56
par PandiPanda
comme ici;
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
;Déclaration des variables
Global $InfoTime=0
Global $TimeToTest
Global $Gestion = GUICreate("Masters VirtualBox", 251, 193, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "quitter")
[color=#BF0000]Global $Label [/color]= GUICtrlCreateLabel("Time:/", 160, 104, 76, 25)
Global $Progress = GUICtrlCreateProgress(8, 152, 233, 17)
Global $telecharger_1 = GUICtrlCreateButton("Télécharger", 160, 28, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent( -1,"telecharge")
Global $quitter_1 = GUICtrlCreateButton("Quitter", 160, 66, 75, 25, $WS_GROUP)
GUICtrlSetOnEvent( -1,"quitter")
$Group1 = GUICtrlCreateGroup("Choix des masters", 8, 10, 129, 135)
$fichier3 = GUICtrlCreateCheckbox("fichier3", 24, 34, 97, 17)
GUICtrlSetOnEvent( -1,"checkbox")
$fichier2 = GUICtrlCreateCheckbox("fichier2", 24, 74, 97, 17)
GUICtrlSetOnEvent( -1,"checkbox")
$fichier1 = GUICtrlCreateCheckbox("fichier1", 24, 114, 97, 17)
GUICtrlSetOnEvent( -1,"checkbox")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Options = GUICtrlCreateMenu("&Options")
$Telecharger = GUICtrlCreateMenuItem("Télécharger", $Options)
GUICtrlSetOnEvent( -1,"telecharge")
$Quitter = GUICtrlCreateMenuItem("Quitter", $Options)
GUICtrlSetOnEvent( -1,"quitter")
GuiSetState ( )
Dim $a_telecharge[4][1]
;Fin des déclarations
;Choix des Masters à télécharger
Func checkbox()
Switch @GUI_CtrlId
Case $fichier3
If _Ischecked($fichier3) then
$a_telecharge[1][0] = "1"
Else
$a_telecharge[1][0] = "0"
EndIf
Case $fichier2
If _Ischecked($fichier2) then
$a_telecharge[2][0] = "1"
Else
$a_telecharge[2][0] = "0"
EndIf
Case $fichier1
If _Ischecked($fichier1) then
$a_telecharge[3][0] = "1"
Else
$a_telecharge[3][0] = "0"
EndIf
EndSwitch
EndFunc
Func telechargeProgress($ctrlId)
Local $hDownload,$SizeFile
$Statut_Checkbox1 = GUICtrlRead($fichier3)
$Statut_Checkbox2 = GUICtrlRead($fichier2)
$Statut_Checkbox3 = GUICtrlRead($fichier1)
If $Statut_Checkbox1 = "1" then
$SizeFile=InetGetSize("ftp://192.168.***.***/fichier/fichier3")
$hDownload=InetGet("ftp://192.168.***.***/fichier/fichier3", "C:\Temp" & "\fichier3", 1, 1)
EndIf
If $Statut_Checkbox2 = "1" then
$SizeFile=InetGetSize("ftp://192.168.***.***/fichier/fichier2")
$hDownload=InetGet("ftp://192.168.***.***/fichier/fichier2", "C:\Temp" & "\fichier2", 1, 1)
EndIf
If $Statut_Checkbox3 = "1" then
$SizeFile=InetGetSize("ftp://192.168.***.***/fichier/fichier1")
$hDownload=InetGet("ftp://192.168.***.***/fichier/fichier1", "C:\Temp" & "\fichier1", 1, 1)
EndIf
$TimeToTest=TimerInit()
Do
Sleep(250)
$info=InetGetInfo($hDownload)
If TimerDiff($TimeToTest) >= 10000 Then _Time($Label,$info[1],$info[0],10)
_SetProgress($Progress,$info[1],$info[0])
Until $info[2]
MsgBox(64, "téléchargement fichier", "Fin du téléchargement")
ProcessClose("Install_auto.exe")
EndFunc
Func _SetProgress($ctrlId,$SizeFile,$sizeDownload)
GUICtrlSetData($ctrlId,Int(($sizeDownload/$SizeFile)*100))
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func quitter()
Exit
EndFunc
Func _Ischecked($control)
Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED
EndFunc
Func _Time($ctrlID,$DL_Now,$SizeMaxDL,$Time)
Local $VitesseDL=(($DL_Now-$InfoTime)/$Time);Ko/sec
$InfoTime=$DL_Now; pour permettre d'appeler plusieur la fonction sans modifier le temps
Local $sec=Int($SizeMaxDL/$VitesseDL) ; seconde
GUICtrlSetData($ctrlID,"Time: "&HMS($sec))
$TimeToTest=TimerInit()
EndFunc
Func HMS($sec); transformation en H:M:S grace à des seconde ^^
Local $heure,$minute,$seconde
$heure=Int($sec/3600)
$sec=$sec-($heure*3600)
$minute=Int($sec/60)
$seconde=$sec-($minute*60)
Return $heure&":"&$minute&":"&$seconde
EndFunc
;Fin du script
Re: [..] Barre de progression
Posté : jeu. 01 sept. 2011 16:13
par Shade
Merci beaucoup!
Je vais tester ça Mardi prochain et je vous tiens au courant!