DirCopy im Hintergrund

  • Hi Community...
    Ich habe ein Problem, undzwar möchte ich mir den Fortschritt von DirCopy in einer PrograssBar anzeigen lassen.
    Bisher hatte ich das so, ging aber logischerweise nicht:



    Die 1500620671 ist die Größe des Quellordners in Bytes.
    Kann mir einer helfen?

  • Vielleicht kannst du ja auf irgendeine Weise die Größe des Ordners erfassen und somit eine Prozentanzeige basteln.


    LG_alpines


    €dit:


    Vielleicht hilft dir das Script mit der Prozentanzeige weiter:
    Achtung ! Das ist ein Downloader für INet nicht für DirCopy.
    $sURL = InputBox("Download", "URL eingeben", "")


    $iSize = InetGetSize($sURL)
    $hIGet = InetGet($sURL, "FireFox.exe", 0, 1)


    ProgressOn("Download", "Progress", "0%")
    $iBytesRead = 0


    Do
    If InetGetInfo($hIGet, 0) <> $iBytesRead Then
    $iBytesRead = InetGetInfo($hIGet, 0)
    $iPercentage = Round($iBytesRead / $iSize * 100, 1)
    ProgressSet($iPercentage, $iPercentage & "%")
    EndIf
    Sleep(50)
    Until $iBytesRead = $iSize


    ProgressSet(100, "100%", "Completed")
    Sleep(2000)
    ProgressOff()

  • Bittsehr:



    MfG, campweb

  • Jaa, nur dass ich das in meine eigene ProgressBar packen möchte und das nicht gebacken bekomme...

  • Naja wo ist das Problem? Du musst doch nur bei der Funktion von campweb das progresson und progressof auskommentieren und anstelle von progressset ein guictrlsetdata($myprogressbar,$percent) reinpacken.

  • Also ich habs jetzt mal auf meine Bedürfnisse angepasst, doch leider geht es immernoch nicht, er mach schon gleich am Anfang die ProgressBar ganz voll...
    Hier der Code:

  • Also die Hilfe sollte man schon lesen und Prozentrechnen sollte man auch können wenn man einen prozentualen Verlauf darstellen will.


    1. Progressbars können nur die Werte 0-100 haben.
    2. GUICtrlSetLimit ist nicht für Progressbars gedacht, also weg damit
    3. Wie berechnest du nun den Wert für die Progressbar?


    (aktuelle Größe Zielverzeichnis / Größe Quellverzeichnis) * 100 = Fortschritt in Prozent


    Diesen Wert setzt du dann in jedem Schleifendurchlauf mit guictrlsetdata($progressbar,$prozent)

  • 1. & 2.) Wenn man mit Koda das Limit einer Progressbar einstellt, steht es so im Quellcode, und daher dachte ich, warum auch immer, dass das so geht. 8|
    3. ) KA

  • Die Antwort zu Frage 3 hab ich dir ja bereits selbst gegeben. Was Koda angeht hast du allerdings recht, Sinn macht es jedenfalls nicht, denn selbst wenn man das Limit damit festsetzt hat das keine Auswirkung auf den darstellbaren Bereich. Es bleibt dabei, es können nur Werte von 0-100 gesetzt werden. Ich gebe aber zu, dass dies scheinbar nicht explizit in der Hilfe steht.

  • Das GuiCtrlSetLimit hat sehrwohl einen Sinn !
    Man ändert damit ja nicht die Länge der ProgressBar, sondern wie viel z.B. ein Strich wert ist.
    Nehmen wir an, wir haben eine ProgressBar mit genau 100 Strichen (Ja ich hab noch Win XP) und eine Datei die 100 Bytes groß ist.
    Dann wäre jeder Byte ein Strich.
    Wenn wir eine ProgressBar mit 100 Strichen haben, aber das Limit auf 200 stellen, und eine Datei haben die 200 Bytes groß ist, ist jeder Strich 2 Bytes wert. Also kommt nur alle 2 Bytes ein Strich.


    Und mit deiner Rechnung hats geklappt, DANKE! :D

  • Man ändert damit nichtmal optisch etwas bei progressbars, siehe Bild (links setlimit auf 2000, rechts auf 20):


    [Blockierte Grafik: http://i.imgur.com/V7dVQ.png]


    Wozu die Funktion gut ist? Man kann damit zum Beispiel bei einem Slider Minimum und Maximum festlegen, dort verhält es sich so wie du es dir vorgestellt hast. Je nach Control werden aber auch andere Limits festgesetzt, wie zum Beispiel die erlaubte Zeichenzahl einer Editbox. Details findest du in der Hilfe.

  • Zitat

    Ich meine jetzt bei ProgressBars und nicht generell, das weiß ich ja !


    Meine Güte, ist das so schwer zu verstehen? GUICtrlSetLimit hat bei Progressbars keinen Effekt weil die Funktion nicht dafür gedacht ist. Und normalerweise ist ein halbwegs guter Programmierer auch in der Lage den Prozentwert zu errechnen. :pinch:
    Haben Socken keinen Sinn weil man sie nicht sinnvoll in Kombination mit Löffeln verwenden kann? :wacko:

  • Jaja ist ja schon gut, brauchst dich nicht gleich so aufzuregen ;(
    Zu den Socken:
    Kommt drauf an, Also der Nikolaus kann das, der steckt da ja immer sachen rein am 6. Dezember :P

  • Hallo Hugbert,


    wo ist das Problem das Script anzupassen, geht doch ganz einfach ProgressSet raus, GuiCtrSetdata rein. Das ganze sieht dann fertig so aus:

    Das Originalscript ist aber nicht von Campweb sondern von gigx siehe http://autoit.de/index.php?page=Thread&postID=25989#post25989


    mfg autoBert