je fais remonter ce vieux post car le code est parfaitement ce qu'il me faut.
Dans mon cas j'aimerai depuis une GUI lancer un téléchargement (avec un simple bouton).
Ça lancera automatiquement le téléchargement avec la barre de progression dans une seconde GUI.
quand le téléchargement se termine je voudrais que la seconde GUI se ferme mais pas la première.
Or là, la seconde GUI reste à l’écran et si je la ferme tout le code se ferme.
Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=..\..\BTtools.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("download", 527, 222, 982, 216)
;~ $Button1 = GUICtrlCreateButton("Ok", 245, 30, 49, 17)
$Button2 = GUICtrlCreateButton("Ok", 245, 50, 49, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
;~ Call ("controlOS")
Call ("keybt")
EndSwitch
WEnd
Func keyBT()
GUICreate("MyGUI")
$Input1 = GUICtrlCreateEdit("http://shv.globetrotter.net/data/fichier_5mb_file.bin", 10, 10, 200, 20)
$Progress1 = GUICtrlCreateProgress(10, 30, 100, 20)
GUISetState()
Global $Dir = FileSaveDialog("Sauvegarder sous...", @DesktopDir, "Tout les fichiers (*.*)", 3, "fichier_5mb_file.bin")
Global $URL = GUICtrlRead($Input1)
Global $Download = InetGet($URL, $Dir, 1, 1) ;Telecharge
Global $TotalSize = 0
While Not InetGetInfo($Download, 2) ;Tant que le telechargement n'est pas complet
Sleep(200)
$KbRecu = InetGetInfo($Download, 0) ;Obtient les KiloOctet reçu
If $KbRecu > 0 Then
If $TotalSize = 0 Then
$TotalSize = InetGetInfo($Download, 1) ;Obtient la taille du fichier
EndIf
$Pourcentage = $KbRecu / $TotalSize * 100 ;calcul le pourcentage
GUICtrlSetData($Progress1, $Pourcentage) ;transfere le pourcentage a la valeur de la ProgressBar
EndIf
WEnd
EndFunc