Fran Posted October 20, 2010 Posted October 20, 2010 I am struggling to cancel my download... I'm still a bit of a newbie when it comes to certain things. I've checked the help file, but I just can't get the Cancel button to interrupt the download. Hope someone can help me expandcollapse popup#include <Math.au3> #include <GUIConstantsEx.au3> _Example1() Func _Example1() $_DownloadPercent=0 $_Gui = GUICreate ( "" ) $butCancel = GUICtrlCreateButton("Cancel", 350/2, 100) $_ProgressBar = GUICtrlCreateProgress ( 5, 25, 350, 23 ) $_Label = GUICtrlCreateLabel ($_DownloadPercent & ' %', 360, 30, 40,20 ) GUISetState ( @SW_SHOW ) $_FinalUrl = 'http://www.shapecollage.com/2.5/ShapeCollage-2.5-Setup.exe' $_TempPath = @scriptDir & "\ShapeCollage-2.5-Setup.exe" $_FileSize = InetGetSize ( $_FinalUrl ) $_Label2 = GUICtrlCreateLabel ("Progress:", 5, 60, 50,20 ) $_Label2 = GUICtrlCreateLabel ("0KB", 52, 60, 200,20 ) $_Download = InetGet ( $_FinalUrl, $_TempPath, 1, 1 ) Switch GUIGetMsg() Case $butCancel InetClose($_Download) EndSwitch Local $_InfoData Do Sleep ( 500 ) $_InfoData = InetGetInfo ( $_Download ) If Not @error Then $_InetGet = $_InfoData[0] $_DownloadPercent = Round ( ( 100 * $_InetGet ) / $_FileSize ) $_DownloadPercent = _Min ( _Max ( 1, $_DownloadPercent ), 99 ) GUICtrlSetData ( $_ProgressBar, $_DownloadPercent) GUICtrlSetData ( $_Label, $_DownloadPercent & ' %') GUICtrlSetData ($_Label2, $_InetGet/1024 & "KB of "& Round($_FileSize/1024) & "KB downloaded") EndIf Until $_InfoData[2] = True GUICtrlCreateLabel ( 'Download successfull !', 5, 60, 350, 20 ) Sleep ( 2000 ) EndFunc
UEZ Posted October 20, 2010 Posted October 20, 2010 I wrote some time ago this: expandcollapse popup;Coded by UEZ 2010 #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <GuiStatusBar.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) Opt("MustDeclareVars", 1) Local $hGUI = GUICreate("Downloader by UEZ 2010", 615, 267, 192, 124) GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") Local $Input_URL = GUICtrlCreateInput("http://www.autoitscript.com/autoit3/files/beta/autoit/autoit-v3.3.5.6-sfx.exe", 64, 24, 497, 21) Local $Label1 = GUICtrlCreateLabel("URL:", 32, 26, 29, 17) Local $Start_DL = GUICtrlCreateButton("Download", 64, 128, 75, 25) GUICtrlSetOnEvent(-1, "Start_DL") Local $Stop_DL = GUICtrlCreateButton("Cancel", 488, 128, 75, 25) GUICtrlSetOnEvent(-1, "Stop_DL") GUICtrlSetState(-1, $GUI_DISABLE) Local $Progress = GUICtrlCreateProgress(8, 192, 598, 17) Local $StatusBar = _GUICtrlStatusBar_Create($hGUI) _GUICtrlStatusBar_SetText($StatusBar, "Ready") Local $Input_Save_To = GUICtrlCreateInput(@ScriptDir, 64, 80, 497, 21) Local $Label2 = GUICtrlCreateLabel("Save to:", 16, 84, 44, 17) GUISetState(@SW_SHOW) Local $hDownload, $nBytes, $nRead, $nSize, $calc, $file, $url Local $prog = 0 Local $stop = 0 While Sleep(1000000000) WEnd Func Start_DL() $url = GUICtrlRead($Input_URL) $file = GUICtrlRead($Input_Save_To) If $url <> "" And $file <> "" Then GUICtrlSetState($Start_DL, $GUI_DISABLE) GUICtrlSetState($Stop_DL, $GUI_ENABLE) $file &= "\" & StringRight($url, StringLen($url) - StringInStr($url, "/", 0, -1)) $nSize = InetGetSize($url) $hDownload = InetGet($url, $file, 1, 1) AdlibRegister("DL_Check", 50) EndIf EndFunc Func DL_Check() If InetGetInfo($hDownload, 2) Or $stop Then InetClose($hDownload) GUICtrlSetState($Start_DL, $GUI_ENABLE) GUICtrlSetState($Stop_DL, $GUI_DISABLE) GUICtrlSetData($Progress, 0) _GUICtrlStatusBar_SetText($StatusBar, "Ready") $stop = 0 AdlibUnRegister("DL_Check") Else $nRead = InetGetInfo($hDownload, 0) $calc = Int(100 * $nRead / $nSize) GUICtrlSetData($Progress, $calc) _GUICtrlStatusBar_SetText($StatusBar, $nRead & " / " & $nSize & " bytes") EndIf EndFunc Func Stop_DL() $stop = 1 EndFunc Func _Exit() InetClose($hDownload) GUIDelete($hGUI) Exit EndFunc Maybe it will help you. Br, UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
Fran Posted October 20, 2010 Author Posted October 20, 2010 Another question... is there a way to pause the download? Reason I'm asking is, I want the user to confirm whether they want to cancel the download. When I add a msgbox within your Stop_DL Function, the download keeps running though. F
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now