Jump to content

Recommended Posts

Posted

Hello
Can we pause and resume the download in the InetGet function?
If is possible, what is the solution please?
I used this code To manage the download

#include <INet.au3>
func _downloader($name, $linc, $filepath, $RTLF = false, $link = false)
    global $downloader = GUICreate("downloader", 400, 200, -1, -1, $WS_CLIPCHILDREn, $RTLF, $link)
    global $path = $filePath
$labelTxt = GUICtrlCreateLabel("downloading " & $name, 50, 10, 200, 20)
global $labelTxt0 = GUICtrlCreateLabel("downloaded size 0 MB " & "OF 0 MB", 50, 60, 300, 20)
global $Progress = ""
global $sText = ""
    For $i = 1 To Random(5, 20, 1) ; Return an integer between 5 and 20 to determine the length of the string.
        $sText &= Chr(Random(65, 122, 1)) ; Return an integer between 65 and 122 which represent the ASCII characters between a (lower-case) to Z (upper-case).
next
global $labelTxt2 = GUICtrlCreateInput("0%", 50, 80, 50, 20)
_GUICtrlEdit_SetReadOnly(-1, true)
GUIStartGroup("")
global $beep = GUICtrlCreateCheckBox("use the progress beep notification", 150, 120, 200, 20)
GUIStartGroup("")
$button = GUICtrlCreateButton("Cancel', 130, 150, 180, 25, 0x01)
$iIndex = 0
global $Target
global $url
GUIStartGroup("")
global $Progress = GUICtrlCreateProgress(50, 90, 150, 20)
global $Target = $filepath
global $url = $linc
global $path = $filepath
global $hDownloadNo = _RSMWare_GetData($url, $Target)
global $status = false
AdlibRegister("SetProgress")
global $onprogress = false, $curent = false
GUISetState(@sw_Show)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $button
$asc = MsgBox(4132,"exit download?","if you click yes the downloading will be cancel, do you want to cancel it ?")
if $asc = 6 then
AdlibUnRegister("SetProgress")
GUIDelete()
    If $hDownloadNo <> 0 Then InetClose($hDownloadNo)
exitLoop
endIf
EndSwitch
if $status = -1 then
$status = 0
$hDownloadNo = _RSMWare_GetData($url, $Target)
$onprogress = false
$curent = false
elseIf $Status = 1 then
$status = $path
GUIDelete()
AdlibUnRegister("SetProgress")
exitLoop
endIf
WEnd
return $status
endFunc
Func _RSMWare_GetData($url, $Target)
Local $hDownload = InetGet($url, $Target, 1, 1)
Return $hDownload
EndFunc ;==>_RSMWare_GetData
    Func SetProgress()
Local $state
If $hDownloadNo <> 0 Then
$state = InetGetInfo($hDownloadNo)
If @error = 0 Then
$infor = "downloaded size " & Round(Execute(InetGetInfo($hDownloadNo, $INET_DOWNLOADREAD) / 1048576), 2) & " MB of " & Round(Execute(InetGetInfo($hDownloadNo, $INET_DOWNLOADSIZE) / 1048576), 2) & " MB "
$onprogress = Round(Ceiling(($state[0] / $state[1]) * 100))
if not (InetGetInfo($hDownloadNo, $INET_DOWNLOADSIZE) = 0) then
if $onProgress <= 0 then $onProgress = 0
GUICtrlSetData($Progress, $onProgress)
GUICtrlSetData($labelTxt0, $infor)
GUICtrlSetData($labelTxt2, $onProgress & "%")
if _isChecked($beep) then
if $onprogress > $curent then
beep((100 + $onprogress * 20), 100)
$curent = $onprogress
endIf
endIf
endIf
If $state[2] Then
If $state[3] Then
InetClose($hDownloadNo)
$status = 1
else
InetClose($hDownloadNo)
$status = -1
endIf
endIf
EndIf
endIf
EndFunc ;==>SetProgress

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...