ich hab mal einfach um es auszuprobieren nen kleinen Downloader geschireben:
Spoiler anzeigen
#NoTrayIcon
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <GUIStatusBar.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Downloader", 509, 164, 193, 125, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS))
$Label1 = GUICtrlCreateLabel("URL: ", 16, 16, 36, 17)
$Input1 = GUICtrlCreateInput("", 72, 16, 321, 21)
$Label2 = GUICtrlCreateLabel("Downloading: no", 16, 56, 380, 17)
$Progress1 = GUICtrlCreateProgress(16, 88, 377, 25)
$Button1 = GUICtrlCreateButton("Download", 416, 32, 81, 25, 0)
$Button2 = GUICtrlCreateButton("Abort", 416, 80, 81, 25, 0)
$status=_GUICtrlStatusBar_Create($Form1)
_GUICtrlStatusBar_SetText($status,"Able to Download: Yes",0,0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$ding=0
$h=0
$x=""
$ox=""
global $inet=1
AdlibRegister("adl",10000)
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
if $ding=1 Then
InetClose($h)
$ding=0
guictrlsetdata($Progress1,0)
guictrlsetdata($Label2,"Downloading: Aborted")
EndIf
AdlibUnRegister("adl")
Exit
case $Button1
if $ding=0 then
$xx=1
$old=0
$h=0
$u=guictrlread($Input1)
$size=Round(InetGetSize($u) / 1024 / 1024,2)
while $xx<>0
$xx=stringinstr($u,"/",0,1,$old+1)
if $xx<>0 then $old=$xx
WEnd
$fina=stringmid($u,$old+1)
$varSaveAs = $fina
$h=inetget($u,$varSaveAs,0,1)
$ding=1
EndIf
case $Button2
if $ding=1 Then
InetClose($h)
$ding=0
guictrlsetdata($Progress1,0)
guictrlsetdata($Label2,"Downloading: Aborted")
EndIf
EndSwitch
if inetgetinfo($h,2)=1 and $ding=1 then
$ding=0
guictrlsetdata($Progress1,0)
guictrlsetdata($Label2,"Downloading: Finished")
EndIf
if $ding=1 Then
$mb=round(inetgetinfo($h,0)/1024/1024,2)
guictrlsetdata($Label2,"Downloading: "&$mb& " of "&$size&" MB")
$proz=($mb/$size)*100
guictrlsetdata($Progress1,$proz)
EndIf
$x=guictrlread($Input1)
if $ox<>$x Then
$ox=$x
$si=round(InetGetSize($ox)/1024/1024,2)
guictrlsetdata($Label2,"Eingabe, Größe: "&$si&" MB")
EndIf
sleep(10)
WEnd
func adl()
if _internetcheck()=0 then
if $inet=1 then _GUICtrlStatusBar_SetText($status,"Able to Download: No",0,0)
$inet=0
Else
$inet=1
_GUICtrlStatusBar_SetText($status,"Able to Download: Yes",0,0)
EndIf
EndFunc
Func _internetcheck()
local $timer = TimerInit()
While Not Ping("www.google.de")
Sleep(1000)
If TimerDiff($timer) > 5000 Then Return 0
WEnd
Return 1
EndFunc
PS: _internetcheck() habe ich irgendwo hier aus dem Forum