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