Je vous prie de m'aider ou de me donner des directives (exemple) pour confectionner un script de gestion de téléchargement qui doit permettre:
1- La reprise de téléchargements interrompus,
2- D’accélérer la vitesse de téléchargements sur Internet,
3- de mettre en pause et de planifier les téléchargements sur Internet.
Voici un exemple de script (comme base) sur le quel on peut ajouter les fonctions de gestionnaire de téléchargement.
► Afficher le texte
#NoTrayIcon
#include <WindowsConstants.au3>
#include <ProgressConstants.au3>
;=============================================
DirCreate(@ProgramFilesDir&"\NOM DU REERTOIRE DE DISTINATION")
;=======================================
ConnexionActive()
$ProgressForm = GUICreate("Veillez passionter, téléchargement en cours ..", 480, 20, -1, 20)
$ProgressBar = GUICtrlCreateProgress(0, 0, 488, 21, $PBS_SMOOTH)
GUISetState(@SW_SHOW, $ProgressForm)
$URL = 'http://XXX.com/NOM DE FICHIER A TELECHARGER'
;==========================================
$nstal= @ProgramFilesDir&"\NOM DU REERTOIRE DE DISTINATION\"
DownloadFile($URL) ;On lance le téléchargement
Exit
Func DownloadFile($FileUrl, $ToFolder = $nstal)
FileCreateShortcut(@ProgramFilesDir& "\NOM DE FICHIER A TELECHARGER", @DesktopDir & "\NOM DE FICHIER A TELECHARGER.lnk", @ProgramFilesDir);racourci
Local $ArchiveName = StringTrimLeft($FileUrl, StringInStr($FileUrl, '/', 0, -1)) ;On définit le nom du fichier cible
Local $hDownload = InetGet($FileUrl, $ToFolder & '\' & $ArchiveName, 1, 1) ;On lance le téléchargement
$aData = InetGetInfo($hDownload) ;On récupére la taille du fichier
While $aData[1] = 0
Sleep(100) ;Nb : normalement la boucle n'est pas obligatoire
$aData = InetGetInfo($hDownload) ; ayant des soucis de connexion j'ai du passer par cette boucle
WEnd
GUICtrlSetData($ProgressBar, 0) ;init de la barre de progression
While $aData[0] < $aData[1] ;On boucle tant que le téléchargement n'est pas finalisé
$aData = InetGetInfo($hDownload)
GUICtrlSetData($ProgressBar, $aData[0] / $aData[1] * 100) ;On gére l'avancement de la barre de progression
Sleep(1000) ;On temporise pour laisser du process au petits copains
;On temporise pour laisser du process au petits copains
;==========================
Global $nBytes
$nBytes = InetGetInfo($hDownload, 0)
If $nBytes =XXXX then ;TAILLE FICHIER A TELECHARGER
MsgBox(64, "Félicitations La sauvegarde de votre contenu s'est bien déroulée! ", "Un raccourci portant le nom de votre contenu va être installé sur votre bureau !")
; \________________/
INSTALL ()
EndIf
WEnd
EndFunc
;==========================
Func LanceMedia()
Global $Taille=XXXXX ;TAILLE FICHIER A TELECHARGER
; \____________/
if FileGetSize(@ProgramFilesDir&"\NOM DE FICHIER A TELECHARGER")=$Taille Then
ShellExecuteWait(@ProgramFilesDir&"\NOM DE FICHIER A TELECHARGER")
Exit
EndIf
EndFunc
;===========================================
; tester connection
While 1
sleep(15000)
ConnexionActive()
WEnd
func ConnexionActive()
$var = Ping("www.google.com")
If $var = 0 Then
Msgbox(48,"Problème de connexion.Ce programme va s'arrêter. ", "La connexion au réseau internent a échoué, soit que votre modem n’est pas installer, ou soit le niveau du signal du réseau est trop bas. Avant de reprendre à nouveau cette application, assurez vous que la connexion au réseau internent est bien rétablie.")
Exit
Else
;Msgbox(48,"Fatal Error", " connexion internet active, 10 ")
EndIf
EndFunc
;=================================
Func INSTALL ()
LanceMedia()
EndFunc
;====================================
#include <WindowsConstants.au3>
#include <ProgressConstants.au3>
;=============================================
DirCreate(@ProgramFilesDir&"\NOM DU REERTOIRE DE DISTINATION")
;=======================================
ConnexionActive()
$ProgressForm = GUICreate("Veillez passionter, téléchargement en cours ..", 480, 20, -1, 20)
$ProgressBar = GUICtrlCreateProgress(0, 0, 488, 21, $PBS_SMOOTH)
GUISetState(@SW_SHOW, $ProgressForm)
$URL = 'http://XXX.com/NOM DE FICHIER A TELECHARGER'
;==========================================
$nstal= @ProgramFilesDir&"\NOM DU REERTOIRE DE DISTINATION\"
DownloadFile($URL) ;On lance le téléchargement
Exit
Func DownloadFile($FileUrl, $ToFolder = $nstal)
FileCreateShortcut(@ProgramFilesDir& "\NOM DE FICHIER A TELECHARGER", @DesktopDir & "\NOM DE FICHIER A TELECHARGER.lnk", @ProgramFilesDir);racourci
Local $ArchiveName = StringTrimLeft($FileUrl, StringInStr($FileUrl, '/', 0, -1)) ;On définit le nom du fichier cible
Local $hDownload = InetGet($FileUrl, $ToFolder & '\' & $ArchiveName, 1, 1) ;On lance le téléchargement
$aData = InetGetInfo($hDownload) ;On récupére la taille du fichier
While $aData[1] = 0
Sleep(100) ;Nb : normalement la boucle n'est pas obligatoire
$aData = InetGetInfo($hDownload) ; ayant des soucis de connexion j'ai du passer par cette boucle
WEnd
GUICtrlSetData($ProgressBar, 0) ;init de la barre de progression
While $aData[0] < $aData[1] ;On boucle tant que le téléchargement n'est pas finalisé
$aData = InetGetInfo($hDownload)
GUICtrlSetData($ProgressBar, $aData[0] / $aData[1] * 100) ;On gére l'avancement de la barre de progression
Sleep(1000) ;On temporise pour laisser du process au petits copains
;On temporise pour laisser du process au petits copains
;==========================
Global $nBytes
$nBytes = InetGetInfo($hDownload, 0)
If $nBytes =XXXX then ;TAILLE FICHIER A TELECHARGER
MsgBox(64, "Félicitations La sauvegarde de votre contenu s'est bien déroulée! ", "Un raccourci portant le nom de votre contenu va être installé sur votre bureau !")
; \________________/
INSTALL ()
EndIf
WEnd
EndFunc
;==========================
Func LanceMedia()
Global $Taille=XXXXX ;TAILLE FICHIER A TELECHARGER
; \____________/
if FileGetSize(@ProgramFilesDir&"\NOM DE FICHIER A TELECHARGER")=$Taille Then
ShellExecuteWait(@ProgramFilesDir&"\NOM DE FICHIER A TELECHARGER")
Exit
EndIf
EndFunc
;===========================================
; tester connection
While 1
sleep(15000)
ConnexionActive()
WEnd
func ConnexionActive()
$var = Ping("www.google.com")
If $var = 0 Then
Msgbox(48,"Problème de connexion.Ce programme va s'arrêter. ", "La connexion au réseau internent a échoué, soit que votre modem n’est pas installer, ou soit le niveau du signal du réseau est trop bas. Avant de reprendre à nouveau cette application, assurez vous que la connexion au réseau internent est bien rétablie.")
Exit
Else
;Msgbox(48,"Fatal Error", " connexion internet active, 10 ")
EndIf
EndFunc
;=================================
Func INSTALL ()
LanceMedia()
EndFunc
;====================================



