Jump to content
rm4453

File Open Keeps Repeating Itself.

Recommended Posts

rm4453

I have a problem with my code where the File Open keeps opening itself... This gui is not fully functional. I am trying to allow the user to select an image for each of the image buttons, when they do all I want to grab is the full file path ex: C:\windows\user\username\images\image.jpg to a variable. "I am just diving into guis myself and have used Koda for most of this form generation. The custom code I have either written myself " most of it " or got help for it on here or the help files. I have searched for at least an hour now and can't seem to figure out what is causing the infinite loop where the file open box continually opens... I am sure its something simple like changing the state of the button that was clicked back to not clicked however I can't figure out how to do that or if that is even the answer... Here is all of the code I can share "This is an NDA project so I will have to take some parts out that are non pertinent etc...."  (ANY * are edits to protect the NDA any missing lines are as well.... :D)

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <***Login.au3>

$section = "Test"
$Item_Wanted = "false"
$For_Sale = "true"
$Business_Listing = "false"
$Private_Listing = "true"
$Posts = 0
$Submit = 0
$SaveListingSettings = 0
$Image1_Description = 0
$Image2_Description = 0
$Image3_Description = 0
$Image4_Description = 0
$Image5_Description = 0
$Image6_Description = 0
$Description1 = 0
$Description2 = 0
$Description3 = 0
$Description4 = 0
$Image1_Pressed = 0

; AutoItSetOption ("GUIOnEventMode", 1)

Func ReadIni()

;Login Info
Global $Email_ini = IniRead("Settings.ini", $section, "Email", "Email")
Global $Password_ini = IniRead("Settings.ini", $section, "Password", "Password")

;Listing Info
Global $Price_ini = IniRead("Settings.ini", $section, "Price", "0")
Global $Title_ini = IniRead("Settings.ini", $section, "Title", "Title Example")

  ;Listing Type
Global $For_Sale_ini = IniRead("Settings.ini", $section, "For_Sale", "True")
Global $Item_Wanted_ini = IniRead("Settings.ini", $section, "Item_Wanted", "False")

If $For_Sale_ini = "false" Then
    GUICtrlSetState($Item_Wanted, 1)
Else
    If $For_Sale_ini = "true" Then
        GUICtrlSetState($For_Sale, 1)
    EndIf
EndIf


  ;Business Or Private
Global $Business_Listing_ini = IniRead("Settings.ini", $section, "Business_Listing", "False")
Global $Private_Listing_ini = IniRead("Settings.ini", $section, "Private_Listing", "True")

If $Private_Listing_ini = "false" Then
    GUICtrlSetState($Business_Listing, 1)
Else
    If $Private_Listing_ini = "true" Then
        GUICtrlSetState($Private_Listing, 1)
    EndIf
EndIf


  ;Image FilePaths and Descriptions
Global $Image1_ini = IniRead("Settings.ini", $section, "Image1", "C:\image1.jpg")
Global $Image1_Description_ini = IniRead("Settings.ini", $section, "Image1_Description", "Default Descrip")
Global $Image2_ini = IniRead("Settings.ini", $section, "Image2", "C:\image2.jpg")
Global $Image2_Description_ini = IniRead("Settings.ini", $section, "Image2_Description", "Default Descrip")
Global $Image3_ini = IniRead("Settings.ini", $section, "Image3", "C:\image3.jpg")
Global $Image3_Description_ini = IniRead("Settings.ini", $section, "Image3_Description", "Default Descrip")
Global $Image4_ini = IniRead("Settings.ini", $section, "Image4", "C:\image4.jpg")
Global $Image4_Description_ini = IniRead("Settings.ini", $section, "Image4_Description", "Default Descrip")
Global $Image5_ini = IniRead("Settings.ini", $section, "Image5", "C:\image5.jpg")
Global $Image5_Description_ini = IniRead("Settings.ini", $section, "Image5_Description", "Default Descrip")
Global $Image6_ini = IniRead("Settings.ini", $section, "Image6", "C:\image6.jpg")
Global $Image6_Description_ini = IniRead("Settings.ini", $section, "Image6_Description", "Default Descrip")

  ;Listing Descriptions
Global $Description1_ini = IniRead("Settings.ini", $section, "Description1", "Default Descrip")
Global $Description2_ini = IniRead("Settings.ini", $section, "Description2", "Default Descrip")
Global $Description3_ini = IniRead("Settings.ini", $section, "Description3", "Default Descrip")
Global $Description4_ini = IniRead("Settings.ini", $section, "Description4", "Default Descrip")

  ;Contact Info
Global $Phone1_ini = IniRead("Settings.ini", $section, "Phone1", "888")
Global $Phone2_ini = IniRead("Settings.ini", $section, "Phone2", "999")
Global $Phone3_ini = IniRead("Settings.ini", $section, "Phone3", "9090")
Global $Address_ini = IniRead("Settings.ini", $section, "Address", "491 S 231 E")
Global $City_ini = IniRead("Settings.ini", $section, "City", "Sandy")
Global $State_ini = IniRead("Settings.ini", $section, "State", "WA")
Global $Zip_ini = IniRead("Settings.ini", $section, "Zip", "84119")

  ;Post Interval in Minutes
Global $Post_Interval_In_Minutes_ini = IniRead("Settings.ini", $section, "Post_Interval_In_Minutes", "10")

EndFunc

Func Gui()
$***AutoPoster = GUICreate("*** Auto Poster", 615, 437, 340, 172)
$LoginInfo = GUICtrlCreateGroup("Login Info", 8, 8, 177, 113)
$Submit = GUICtrlCreateButton("Submit", 58, 84, 75, 25)


GUICtrlSetTip(-1, "Verify Login Information")
Global $Email = GUICtrlCreateInput($Email_ini, 23, 31, 145, 21)
GUICtrlSetTip(-1, "*** Email")
Global $Password = GUICtrlCreateInput($Password_ini, 23, 57, 145, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
GUICtrlSetTip(-1, "*** Password")
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $ListingInfo = GUICtrlCreateGroup("Listing Info", 200, 8, 401, 417)
Global $Price = GUICtrlCreateInput($Price_ini, 232, 40, 137, 21)
GUICtrlSetTip(-1, "Asking Price For Listing")
Global $Title = GUICtrlCreateInput($Title_ini, 232, 72, 137, 21)
GUICtrlSetTip(-1, "Title Of Listing")
Global $ListingType = GUICtrlCreateGroup("Listing Type", 376, 24, 193, 81)
Global $For_Sale = GUICtrlCreateRadio("For Sale", 384, 39, 193, 21)
GUICtrlSetTip(-1, "Is Item For Sale")
Global $Item_Wanted = GUICtrlCreateRadio("Item Wanted", 384, 71, 193, 21)
GUICtrlSetTip(-1, "Are You Looking For Item")
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $Business_or_Private = GUICtrlCreateGroup("Business or Private", 232, 112, 337, 65)
Global $Business_Listing = GUICtrlCreateRadio("Business Listing", 248, 136, 137, 25)
GUICtrlSetTip(-1, "Is This A Business Listing")
Global $Private_Listing = GUICtrlCreateRadio("Private Listing", 408, 136, 137, 25)
GUICtrlSetTip(-1, "Is This A Private Listing")
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $ContactInfo = GUICtrlCreateGroup("Contact Info", 232, 312, 337, 73)
Global $Phone1 = GUICtrlCreateInput($Phone1_ini, 237, 330, 33, 21)
GUICtrlSetTip(-1, "Phone Number Area Code")
Global $Phone3 = GUICtrlCreateInput($Phone3_ini, 317, 330, 33, 21)
GUICtrlSetTip(-1, "Last 4 Numbers Of Phone Number")
Global $Phone2 = GUICtrlCreateInput($Phone2_ini, 277, 330, 33, 21)
GUICtrlSetTip(-1, "First 3 Numbers Of Phone Number")
Global $Address = GUICtrlCreateInput($Address_ini, 360, 328, 201, 21)
GUICtrlSetTip(-1, "Address For Listing")
Global $City = GUICtrlCreateInput($City_ini, 360, 352, 49, 21)
GUICtrlSetTip(-1, "City For Listing")
Global $State = GUICtrlCreateInput($State_ini, 416, 352, 97, 21)
GUICtrlSetTip(-1, "State For Listing (Only Use Abrieviations)")
Global $Zip = GUICtrlCreateInput($Zip_ini, 520, 352, 41, 21)
GUICtrlSetTip(-1, "Zip Code For Listing")
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $SaveListingSettings = GUICtrlCreateButton("Save Listing Settings", 456, 392, 114, 25)


GUICtrlSetTip(-1, "Save Listing Settings")
Global $Post_Interval_In_Minutes = GUICtrlCreateInput($Post_Interval_In_Minutes_ini, 232, 392, 209, 21)
GUICtrlSetTip(-1, "How Often Program Should Auto Post (Will Be Randomized Somewhat For Validity)")
Global $Description1_Button = GUICtrlCreateButton($Description1_ini, 232, 189, 145, 49)


Global $Description2_Button = GUICtrlCreateButton($Description2_ini, 426, 189, 145, 49)


Global $Description3_Button = GUICtrlCreateButton($Description3_ini, 232, 252, 145, 49)


Global $Description4_Button = GUICtrlCreateButton($Description4_ini, 426, 252, 145, 49)


GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $Select_Images = GUICtrlCreateGroup("Select Images", 8, 136, 177, 89)
Global $Image1 = GUICtrlCreateButton($Image1_ini, 16, 160, 41, 25)


Global $Image2 = GUICtrlCreateButton($Image2_ini, 69, 160, 41, 25)


Global $Image3 = GUICtrlCreateButton($Image3_ini, 128, 160, 41, 25)


Global $Image4 = GUICtrlCreateButton($Image4_ini, 17, 192, 41, 25)


Global $Image5 = GUICtrlCreateButton($Image5_ini, 69, 192, 41, 25)


Global $Image6 = GUICtrlCreateButton($Image6_ini, 129, 192, 41, 25)


GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $PostCounter = GUICtrlCreateGroup("Post Counter", 8, 240, 177, 65)
Global $TotalPosts = GUICtrlCreateLabel("Total Posts", 32, 267, 57, 18)
Global $PostCount = GUICtrlCreateLabel($Posts, 104, 267, 50, 18)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $ListingSelection = GUICtrlCreateGroup("Listing Selection", 8, 312, 177, 113)
Global $SelectListing = GUICtrlCreateButton("Select Listing", 24, 336, 145, 33)


Global $BeginSubmission = GUICtrlCreateButton("Begin Submission", 24, 376, 145, 33)


GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
EndFunc


Func OpenImages()
    $message = "Please Find and Select Your Image."
    $var = FileOpenDialog($message, @WindowsDir & "\", "Images (*.jpg;*.gif)")
    FileChangeDir(@ScriptDir)
    Global $imagePath = $var
    ;$filepathmsg = MsgBox("Path","Here is File Path", $imagePath)
EndFunc

$Save_Section = 1
Func SaveIni()
    IniWrite ( "Settings.ini", $Save_Section, "Email", GUICtrlRead($Email))
    IniWrite ( "Settings.ini", $Save_Section, "Password", GUICtrlRead($Password))
    IniWrite ( "Settings.ini", $Save_Section, "Price", GUICtrlRead($Price))
    IniWrite ( "Settings.ini", $Save_Section, "Title", GUICtrlRead($Title))
    IniWrite ( "Settings.ini", $Save_Section, "For_Sale", GUICtrlRead($For_Sale))
    IniWrite ( "Settings.ini", $Save_Section, "Item_Wanted", GUICtrlRead($Item_Wanted))
    IniWrite ( "Settings.ini", $Save_Section, "Business_Listing", GUICtrlRead($Business_Listing))
    IniWrite ( "Settings.ini", $Save_Section, "Private_Listing", GUICtrlRead($Private_Listing))
    IniWrite ( "Settings.ini", $Save_Section, "Image1", GUICtrlRead($Image1))
    IniWrite ( "Settings.ini", $Save_Section, "Image1_Description", GUICtrlRead($Image1_Description))
    IniWrite ( "Settings.ini", $Save_Section, "Image2", GUICtrlRead($Image2))
    IniWrite ( "Settings.ini", $Save_Section, "Image2_Description", GUICtrlRead($Image2_Description))
    IniWrite ( "Settings.ini", $Save_Section, "Image3", GUICtrlRead($Image3))
    IniWrite ( "Settings.ini", $Save_Section, "Image3_Description", GUICtrlRead($Image3_Description))
    IniWrite ( "Settings.ini", $Save_Section, "Image4", GUICtrlRead($Image4))
    IniWrite ( "Settings.ini", $Save_Section, "Image4_Description", GUICtrlRead($Image4_Description))
    IniWrite ( "Settings.ini", $Save_Section, "Image5", GUICtrlRead($Image5))
    IniWrite ( "Settings.ini", $Save_Section, "Image5_Description", GUICtrlRead($Image5_Description))
    IniWrite ( "Settings.ini", $Save_Section, "Image6", GUICtrlRead($Image6))
    IniWrite ( "Settings.ini", $Save_Section, "Image6_Description", GUICtrlRead($Image6_Description))
    IniWrite ( "Settings.ini", $Save_Section, "Description1", GUICtrlRead($Description1))
    IniWrite ( "Settings.ini", $Save_Section, "Description2", GUICtrlRead($Description2))
    IniWrite ( "Settings.ini", $Save_Section, "Description3", GUICtrlRead($Description3))
    IniWrite ( "Settings.ini", $Save_Section, "Description4", GUICtrlRead($Description4))
    IniWrite ( "Settings.ini", $Save_Section, "Phone1", GUICtrlRead($Phone1))
    IniWrite ( "Settings.ini", $Save_Section, "Phone2", GUICtrlRead($Phone2))
    IniWrite ( "Settings.ini", $Save_Section, "Phone3", GUICtrlRead($Phone3))
    IniWrite ( "Settings.ini", $Save_Section, "Address", GUICtrlRead($Address))
    IniWrite ( "Settings.ini", $Save_Section, "City", GUICtrlRead($City))
    IniWrite ( "Settings.ini", $Save_Section, "State", GUICtrlRead($State))
    IniWrite ( "Settings.ini", $Save_Section, "Zip", GUICtrlRead($Zip))
    IniWrite ( "Settings.ini", $Save_Section, "Post_Interval_In_Minutes", GUICtrlRead($Post_Interval_In_Minutes))
EndFunc


$GuiOpened = 1
$im = 1

While 1 = 1
    If $GuiOpened = 1 Then
        ReadIni()
        Gui()
        ReadIni()
        $GuiOpened = 2
    EndIf
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Submit
            $email = $Email_ini
            $pass = $Password_ini
            Login()
        Case $SaveListingSettings
            $Save_Section = InputBox("Listing Name", "Please Type The Name For Your Listing", "EXAMPLE: Blue Blanket")
            SaveIni()
        Case $Image1
            OpenImages()
            Global $Image1 = $imagePath
            Global $Image1_Description = GUICtrlCreateEdit("Image Description", 615, 437, 50, 40)

    EndSwitch
WEnd

 

Edited by rm4453
Code would not insert so I Posted Topic then added Code

Share this post


Link to post
Share on other sites
Melba23

rm4453,

The first time you run the script, $Image1 is set the controlID of the button as intended - thus the Switch functions correctly. However, as soon as that button fires, you run the OpenImages functions and reset the variable to what seems to be the string returned from the FileOpenDialog call within the function:

Case $Image1
    OpenImages()
    Global $Image1 = $imagePath

As AutoIt expects a number within the Switch statement it tries to convert that string to a number - which as the string will always start with a letter - will result in $Image1 being set to 0. That is the default return from GUIGetMsg when there are no events to process - and so the $Image1 case fires on every pass.

Solution: Do not reuse variables which refer to ControlIDs.

M23

P.S. That code is, quite frankly, appallingly written - for example, you declare practically every Global variable within a function. I think a complete recast of the code would be a very good idea.

P.P.S Having just seen this line:

GUICtrlSetTip(-1, "How Often Program Should Auto Post (Will Be Randomized Somewhat For Validity)")

I have also decided that this is not a script we are prepared to support. Having to make that sort of statement leads me to believe that the site which you are attempting to spam would not approve of the script being used. Thread closed - PM me if you wish to explain why you feel I should reopen it.

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Similar Content

    • SC0U7
      By SC0U7
      Hello i have a text file which contain over 600KB of BASE64 strings like :
      TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...
      Now what i need is divide this long string as autoit variable each max lenght (4000characters per line) example:
      Local $var
      $var &=  TVqQAAMAAAAEAAA..
      $var &=  VbAmejwqqqAACEE..
      and then how to i add encrypt function on every line ? how to i can xor it? example final will be :
      $var &=  XorEnc(TVqQAAMAAAAEAAA..)
      $var &=  XorEncVbAmejwqqqAACEE..)
       
      Thanks for any help and ideas 
    • JuanFelipe
      By JuanFelipe
      Hello friends, I would like to know how to open a GUI from another GUI, I did it the way I leave the attached code, but when closing the second GUI they all close, they could help me to solve this problem without compiling another script. Thank you #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 173, 126, 192, 124) $Button1 = GUICtrlCreateButton("Button1", 16, 24, 75, 25) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 _form2() EndSwitch WEnd ;================================================= GUI 2 Func _form2() $Form1 = GUICreate("Form2", 615, 437, 192, 124) GUISetState(@SW_SHOW) While 2 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd EndFunc  
    • FrancescoDiMuro
      By FrancescoDiMuro
      Good evening everyone
      First, I want to apologize with you for the title not very clear, but I thought a little bit on which title to set at the thread, and this is the one that came in mind.
      Now, let me explain what I'm trying to understand.

      I am making an application ( with n clients ), with an SQLite Database, which has a Main form, and n sub-forms... 
      Since these sub-forms are called several times, because they are used to add or update records to the Database, I put the code that generates the GUI of these sub-forms in Functions.
      There are two sub-forms which are "treated" as two main forms, since even them have n sub-forms, which perform various tasks.
      Where am I stucked?

      For the Main form I created a Status Bar, in order to display messages ( add/delete/update/search results ), and it works perfectly with all the forms which don't have other sub-forms.
      For the two forms, which indeed have n sub-forms, I created two separated Status Bars, which are (re)created everytime I call the function that then displays the form.
      Practically, I can't set icons to these two Status Bars, and I don't know why.
      I'm really sorry that I don't feel clear enough, so, here you are an example of what I am saying.
      I recreated exactly what my script does:
      #include <GuiButton.au3> #include <GUIConstantsEx.au3> #include <GuiStatusBar.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) Global $frmSubForm, _ $txtSubFormField, _ $sbSubFormStatusBar, _ $objSB_IconError = _WinAPI_LoadShell32Icon(109), _ $objSB_IconInformation = _WinAPI_LoadShell32Icon(277) #Region ### START Koda GUI section ### Form= $frmMainForm = GUICreate("Main Form", 300, 300, -1, -1) GUISetOnEvent($GUI_EVENT_CLOSE, "ExitApplication") $sbMainStatusBar = _GUICtrlStatusBar_Create($frmMainForm) $btnCreateSubForm = GUICtrlCreateButton("Create Sub Form", 105, 110, 75, 41, BitOR($BS_CENTER,$BS_VCENTER,$BS_MULTILINE)) GUICtrlSetOnEvent(-1, "GenerateSubForm") GUICtrlSetFont(-1, 10, 400, 0, "Arial") _GUICtrlStatusBar_SetSimple($sbMainStatusBar) _GUICtrlStatusBar_SetText($sbMainStatusBar, "") GUISetState(@SW_SHOW, $frmMainForm) #EndRegion ### END Koda GUI section ### While 1 Sleep(100) WEnd Func ExitApplication() Exit EndFunc Func GenerateSubForm() #Region ### START Koda GUI section ### Form= $frmSubForm = GUICreate("Sub-Form", 300, 300, -1, -1, -1, -1, $frmMainForm) GUISetOnEvent($GUI_EVENT_CLOSE, "DeleteSubForm") $txtSubFormField = GUICtrlCreateInput("", 0, 0, 100, 20) $btnCheckSubFormField = GUICtrlCreateButton("Check Field", 105, 110, 75, 41, BitOR($BS_CENTER,$BS_VCENTER,$BS_MULTILINE)) GUICtrlSetOnEvent(-1, "CheckSubFormField") GUICtrlSetFont(-1, 10, 400, 0, "Arial") $sbSubFormStatusBar = _GUICtrlStatusBar_Create($frmSubForm) _GUICtrlStatusBar_SetSimple($sbSubFormStatusBar) _GUICtrlStatusBar_SetText($sbSubFormStatusBar, "") GUISetState(@SW_SHOW, $frmSubForm) GUISetState(@SW_DISABLE, $frmMainForm) #EndRegion ### END Koda GUI section ### EndFunc Func DeleteSubForm() ; Declared Globally => $frmSubForm GUIDelete($frmSubForm) GUISetState(@SW_ENABLE, $frmMainForm) EndFunc Func WriteToStatusBar($sbStatusBar, $objSB_Icon, $strText) _GUICtrlStatusBar_SetIcon($sbStatusBar, 0, $objSB_Icon) _GUICtrlStatusBar_SetText($sbStatusBar, $strText) ConsoleWrite("Icon Handle: " & $objSB_Icon & @CRLF) EndFunc Func CheckSubFormField() ; Declared Globally => $txtSubFormField If GUICtrlRead($txtSubFormField) = "" Then ; Declared Globally => $sbStatusBar WriteToStatusBar($sbSubFormStatusBar, $objSB_IconError, "Field NOK.") Else WriteToStatusBar($sbSubFormStatusBar, $objSB_IconInformation, "Field OK.") EndIf EndFunc The text is set, but icon is not.
      Could someone please tell me why?
      Thanks everyone in advance  

      Best Regards.
    • bowker
      By bowker
      Hi! Is there a way for me to set the value for my slider? I am getting the value for my slider with
       
      Local $strText = _UIA_getPropertyValue($oUIElement, $UIA_LegacyIAccessibleValuePropertyId) MsgBox(0,"",$strText)  
    • nacerbaaziz
      By nacerbaaziz
      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
×