Habe ein Problem mit dem Befehl InetGet

  • So liebe leute jetzt habe ich ein Problem mit dem Befehl InetGet wenn ich ihn an wände saugt er sich nicht das Programm aus dem I-net
    Woran liegt das einmal hat es funktioniert.

    Hier mal der Befehl

    Spoiler anzeigen
    [autoit]

    InetGet("http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe")

    [/autoit]

    Schon mal danke für die Hilfe

    Gruß der bo

    Einmal editiert, zuletzt von bo2221 (31. August 2008 um 16:34)

  • Vielleicht solltest du deinem Scipt auch sagen, wohin er das laden soll ?

    [autoit]

    InetGet("http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe", @ScriptDir & '\autoit-v3-setup.exe')

    [/autoit]


    Außerdem kannst du dir noch die Rückgabe von InetGet ansehen & evtl mal
    @InetGetBytesRead überprüfen.

    mfg limette

    There are only 10 types of people in the world:
    Those who understand binary - and those who don't.

  • Ich kenn mich da noch nicht so wirklich aus
    was mache ich mit @InetGetBytesRead wie binde ich den Befehl ein?

    Es gibt ja noch mehr Macros aber ich habe keine Ahnung wie man die ein bindet währe schön wenn das mir mal einer erklären könnte.

    Einmal editiert, zuletzt von bo2221 (30. August 2008 um 16:06)

  • Makros fragst du genau so ab wie Variablen.

    [autoit]

    MsgBox( 0, 'Uhrzeit', @HOUR & ':' & @MIN & ':' & @SEC )

    [/autoit]


    Das zB gibt dir die aktuelle Uhrzeit.
    Wobei der Wert von @SEC eben jede Sekunde wechselt, usw... ;)

    Bezogen auf InetGet:
    @InetGetBytesRead:

    Zitat von AutoIt Hilfe

    Während eines InetGet-Downloads gibt das die Zahl der gelesenen Bytes an. Es ist -1, wenn ein Fehler beim Download aufgetreten ist.

    mfg limette

    There are only 10 types of people in the world:
    Those who understand binary - and those who don't.

  • Aha ich glaube ich verstehe es das ist ja ne feine sache

    mal schauen ob ich es hin bekomme

    Danke dir


    EDIT: Ich habe es mal irgendwie getästet und irgendwie noch nicht verstanden

    [autoit]

    MsgBox( 1, 'Uhrzeit', @InetGetBytesRead)
    InetGet("http://ftp22.nero.com/Nero8/Nero-8.3.6.0_deu_update.exe", "Nero-8.3.6.0_deu.exe", @ScriptDir & '\Nero-8.3.6.0_deu.exe')

    [/autoit]

    Da ist was falsch ich möchte wenn dann da In dem sich öffnenden Fenster wie lange der download noch braucht und wieviel er noch laden muß oder er schon hat und dann noch ne möglichkeit den Download ab zu brechen währe auch noch toll.

    Gruß

    Einmal editiert, zuletzt von bo2221 (30. August 2008 um 17:19)

  • In der Hilfe gibt es dazu ein gutes Beispiel:

    Spoiler anzeigen
    [autoit]

    InetGet("http://www.nowhere.com/somelargefile.exe", "test.exe", 1, 1)

    [/autoit] [autoit][/autoit] [autoit]

    While @InetGetActive
    TrayTip("Downloading", "Bytes = " & @InetGetBytesRead, 10, 16)
    Sleep(250)
    Wend

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "Bytes read", @InetGetBytesRead)

    [/autoit]

    Bezogen auf dein Script währe das:

    Spoiler anzeigen
    [autoit]


    #include <Misc.au3> ;für _IsPressed

    [/autoit] [autoit][/autoit] [autoit]

    InetGet("http://ftp22.nero.com/Nero8/Nero-8.3.6.0_deu_update.exe", @ScriptDir & '\Nero-8.3.6.0_deu.exe', 1, 1)

    [/autoit] [autoit][/autoit] [autoit]

    While @InetGetActive
    TrayTip("Downloading", "Bytes = " & @InetGetBytesRead, 10, 16)
    If _IsPressed( '1B' ) Then ;Wenn ESC gedrückt wurde
    InetGet( 'abort' ) ; breche den Download ab. Aus der Schleife geht der dann von alleine,
    ; da die Bedingung der While-Schleife @InetGetActive ist
    EndIf
    Sleep(100)
    Wend

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "Bytes read", @InetGetBytesRead)

    [/autoit]

    mfg limette

    There are only 10 types of people in the world:
    Those who understand binary - and those who don't.

  • Das finde ich ja schonmal sehr sehr schick ich merke schon das ich noch einiges an grund wissen brauche um da mit halten zu können.

    ist es den vieleicht auch möglich wenn man mit ESC abbricht das sich nen Fenster auf macht wo steht (Wollen sie wirklich den download abbrechen) und dann 2 Button mit ja und nein. Und kann man in dem Fenster auch nen hinweiß hinterlassen so wie(mit ESC download abbrechen).
    Und vieleicht das man anstatt der schon runtergeladenen Bytes die noch verbleibende zeit sieht das währe schick oder wieviel noch runter geladen muß?

    Ich habe absolut keinen schimmer wie sowas funktioniert ich schau mir immer fertige skripte an um heraus zu finden wie es alles so funktioniert aber da muß ich noch einiges tun um sowas hin zu bekommen. Bin ja auch erst ne Woche dabei

    Gruß der Bo

  • Auf Druck von 'ESC' wird nochmal nachgefragt:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3> ;für _IsPressed

    [/autoit] [autoit][/autoit] [autoit]

    InetGet("http://ftp22.nero.com/Nero8/Nero-8.3.6.0_deu_update.exe", @ScriptDir & '\Nero-8.3.6.0_deu.exe', 1, 1)

    [/autoit] [autoit][/autoit] [autoit]

    While @InetGetActive
    TrayTip("Downloading", "Bytes = " & @InetGetBytesRead, 10, 16)
    If _IsPressed( '1B' ) Then ;Wenn ESC gedrückt wurde
    If MsgBox( 4, 'Bestätigen', 'Wollen Sie den Download wirklich abbrechen ?' ) = 6 Then InetGet( 'abort' ) ; breche den Download ab. Aus der Schleife geht der dann von alleine,
    ; da die Bedingung der While-Schleife @InetGetActive ist
    EndIf
    Sleep(100)
    Wend

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "Bytes read", @InetGetBytesRead)

    [/autoit]

    Für den Downloadstatus sieh dir mal die Funktion 'InetGetSize' an ;)
    Damit holst du dir die Dateigröße und schreibst den Tooltip um, in

    ToolTip( Round( ($gesamte_groesse / @InetGetBytesRead )* 100, 2 ) & ' %' )

    (Keine Garantie, nur gerade aus dem Kopf aufgeschrieben,... ;) )

    Ansonsten kann ich noch auf HotKeySet, den Parametern von MsgBox und GuiCreate
    verweisen ;)

    mfg limette

    There are only 10 types of people in the world:
    Those who understand binary - and those who don't.

  • Ich teste und schau mal ob ich es hin bekomme ich melde mich wieder schonmal vielen dank

    Gruß

  • Ich habe den Skript ein bisschen verändert es läuft gut nur jetzt das Problem wenn sich das Bestätigung Fenster öffnet steht da ja Wollen Sie den Download wirklich abbrechen? wenn ich auf Ja drücke zieht er weiter wenn ich auf Nein drücke hört er auf zu laden.

    Man könnte ja ne andere Frage stellen wie z.B. Soll die Datei weiter runtergeladen werden? Dann passt es.

    Aber es muß ja möglich sein die Knopf Funktion zu tauschen


  • [autoit]

    If MsgBox( 64+4, 'Bestätigen', 'Wollen Sie den Download wirklich abbrechen?' ) = 7 Then

    [/autoit]

    DAS hab ich dir so nicht geschrieben ;)
    Fakt ist: Die Bedingung ist erfüllt, wenn die MsgBox 7 zurückgibt. Sie gibt 7 zurück, wenn 'Nein' gedrückt wurde !
    Wie im Script oben zu sehen, habe ich auf '6' geprüft. Denn 6 steht für 'ja' ^^
    Einfach mal in der Hilfe die Rückgabewerte für MsgBoxen ansehen ;)

    Also: Die 7 durch eine 6 ersetzen und schon bricht er auf 'ja' ab ;)

    Du kannst das auch mal so testen:

    [autoit]


    $rueckgabe_der_msgbox = MsgBox( 4, 'Frage', 'Ja oder Nein ?' )
    MsgBox( 64, 'Info', 'Der Button, den du gedrückt hast, hatte den Wert: ' & $rueckgabe_der_msgbox )

    [/autoit]


    ;)
    msgbox limette

    Edit: Vor lauter MsgBoxen komm ich noch ganz durcheinander ^^
    mfg limette

    There are only 10 types of people in the world:
    Those who understand binary - and those who don't.

  • Oh ja das klappt ja heute wunderbar die 2 Möglichkeit ist auch nicht schlecht kann ich bestimmt was mit an fangen.

    Aber irgendwie kommt mir immer wieder was in den Kopf bekommt man das X im Info Fenster weg brauch ich eigentlich nicht zumal man durch das X das Info Fenster nicht weg bekommt.

    Und wenn man den Download abbricht müsste er auch die runtergeladene Datei mit löschen.

    Ich weiß ich nerve aber ich möchte es perfekt haben ich und noch nen Paar wollen nen Programme Pack fertig machen mit Benutzeroberfläche und so deswegen möchte ich es so schön wie möglich haben.

  • Zitat

    bekommt man das X im Info Fenster weg


    Ich wüsste gerade nicht wie, kannst ja mal in den Parametern stöbern...

    Zitat

    Und wenn man den Download abbricht müsste er auch die runtergeladene Datei mit löschen.

    Spoiler anzeigen
    [autoit]


    If MsgBox( 4, 'Bestätigen', 'Möchten Sie den Download abbrechen ?' ) = 6 Then
    InetGet( 'abort' )
    FileDelete( 'pfad zu deiner datei' )
    EndIf

    [/autoit]

    Wo ist das Problem ? ^^

    limette

    There are only 10 types of people in the world:
    Those who understand binary - and those who don't.

  • Ich habe es jetzt so probiert klappt aber nicht

    [autoit]


    While @InetGetActive
    TrayTip("Downloading", "Bytes = " & @InetGetBytesRead, 10, 16)
    If _IsPressed( '1B' ) Then ;Wenn ESC gedrückt wurde
    If MsgBox( 64+4, 'Bestätigen', 'Wollen Sie den Download wirklich abbrechen?' ) = 6 Then Exit InetGet( 'abort' ) ; breche den Download ab. Aus der Schleife geht der dann von alleine,
    FileDelete( @ScriptDir & 'Nero-8.3.6.0_deu.exe')
    ; da die Bedingung der While-Schleife @InetGetActive ist
    EndIf
    Sleep(100)
    Wend

    [/autoit]

    Edit: was für Parameter meinst du weiß nicht wo ich da nach schauen soll

    3 Mal editiert, zuletzt von bo2221 (30. August 2008 um 21:29)

  • Warum übernimmst du das nicht so, wie ich dir geschrieben habe ?

    Spoiler anzeigen
    [autoit]


    If MsgBox( 4, 'Bestätigen', 'Möchten Sie den Download abbrechen ?' ) = 6 Then ;Anfang der If-Klausel
    InetGet( 'abort' ) ; Beende den Download
    FileDelete( 'pfad zu deiner datei' ) ;Lösche die Datei
    Exit ; Beende
    EndIf ;Ende der If-Klausel

    [/autoit]

    Was du geschrieben hast geht so nicht, denn:
    If .... Then Exit InetGet( 'abort' )
    FileDelete( 'pfad_zur_datei' )
    Ist eine einzeilige If-Klausel, d.h. wenn du Nein klickst wird die Datei gelöscht, wenn du Ja klickst
    bricht er den Download ab und beendet das Programm !
    Grundsätzlich funktioniert If-Then so:

    If Bedingung = True Then
    Aktion 1
    Aktion 2
    ElseIf AndereBedingung = True Then
    Aktion 3
    Else
    Aktion 4
    EndIf

    MsgBox( 4, '', '' ) = 6 ist nur ein Vergleich. Wenn Nein geklickt wurde, gibt dieser
    Vergleich False zurück, denn:
    7 = 6 ; Falsch !
    Wenn jedoch Ja geklickt wurde gibt der Vergleich True zurück, denn
    6 = 6 ; Wahr !

    mfg limette

    Edit: Mit Parametern meine ich die erste Angabe bei der MsgBox.
    4 = ja/nein, 64 = info-icon etc. vll gibts da was, das deinen Wünschen entspricht ;)

    There are only 10 types of people in the world:
    Those who understand binary - and those who don't.

  • Oh man was für eine schwere geburt es klappt entlich wegen Den Parametern schaue ich mal ob ich da was hin bekomme

    Ich danke dir vielmals für deine Hilfe

    Finde ich echt super das hier so gut geholfen wird

    Gruß der Bo

  • Ich hätte da doch noch ne kleine sache ich habe es zwar über ne MsgBox gelöst aber mich würde interessieren ob es auch ohne möglich ist ne datei zu löschen ich bekomme es einfach nicht ohne hin.

    Spoiler anzeigen
    [autoit]

    ;Installation beendet
    WinWaitActive("Setup - nLite", "Das Setup hat die Installation von nLite auf Ihrem Computer abgeschlossen")
    send("{enter}")
    If MsgBox( 64, 'Die Installation von nLite-1.4.8 ist abgeschlossen', 'Drücken sie auf OK, um die Installation abzuschließen und die heruntergeladene Datei zu löschen' ) = 1 Then ;Anfang der If-Klausel
    InetGet( 'abort' ) ; Beende den Download
    FileDelete( 'C:\nLite-1.4.8.exe' ) ;Lösche die Datei
    Exit ; Beendet
    EndIf

    [/autoit]


    Ich habe auch jetzt fast 2 Stunden dran gesessen das mit dem Downloadstatus hin zu bekommen aber das klappt nicht ich habe es bisher nur geschaft
    die herunter geladene datei die größe zu bestimmen. und im Tray-Tip wieder zu geben aber dann funktioniert die Funktion @InetGetBytesRead nicht mehr. Irgendwie muß man das doch hin bekommen das da die Prozentzahl des downloades läuft mehr möchte ich doch garnicht.
    Hier mal mein versuch

    [autoit]

    #include <Misc.au3> ;für _IsPressed
    InetGet("http://www.filehippo.com/download/file/8b539b7f908b88af01b84ef58de5a028e7f7e5ca98893cf9329cf48acfc40b3a/", 'C:\nLite-1.4.8.exe', 1, 1)
    Break(0) ;Verhindert Unterbrechungen
    While @InetGetActive
    $size = InetGetSize("http://www.filehippo.com/download/file/8b539b7f908b88af01b84ef58de5a028e7f7e5ca98893cf9329cf48acfc40b3a/nLite-1.4.8.exe")
    TrayTip("Downloading... (Abbruch mit ESC)", "Größe der Datei:" & $size @InetGetBytesRead, 10, 16)
    If _IsPressed( '1B' ) Then ;Wenn ESC gedrückt wurde
    If MsgBox( 64+4, 'Bestätigen', 'Möchten Sie den Download wirklich abbrechen ?' ) = 6 Then ;Anfang der If-Klausel
    InetGet( 'abort' ) ; Beende den Download
    FileDelete( 'C:\nLite-1.4.8.exe' ) ;Lösche die Datei
    Exit ; Beendet
    EndIf ;Ende der If-Klausel
    ; da die Bedingung der While-Schleife @InetGetActive ist
    EndIf
    Sleep(100)
    Wend

    [/autoit]

    So ich habe mir mal nen Bild erstellt wie es aussehen soll mit dem Downloadstatus ich weiß nicht ob sowas alles möglich ist mit Farbe und so aber man weiß ja nie soe wie auf dem Bild währe es ne geile sache.

    autoit.de/wcf/attachment/2878/

    2 Mal editiert, zuletzt von bo2221 (31. August 2008 um 05:30)

  • Zitat

    ich habe es zwar über ne MsgBox gelöst aber mich würde interessieren ob es auch ohne möglich ist ne datei zu löschen


    Lass die MsgBox doch einfach weg.
    Und das InetGet( 'abort' ) brauchst du da doch garnicht mehr oO

    Zum Downloadstatus: Du holst dir in der Schleife jedes mal die Größe der Datei
    auf dem Server - warum ?
    Und das hier:

    [autoit]

    TrayTip("Downloading... (Abbruch mit ESC)", "Größe der Datei:" & $size @InetGetBytesRead, 10, 16)

    [/autoit]


    Passt doch auch nicht, da müsstest du nen Syntax-Error o.ä. kriegen.
    ; "Größe der Datei:" & $size @InetGetBytesRead
    mach doch keinen Sinn oO
    Wofür soll das "$size @InetGetBytesRead" denn sein ?

    Machs doch so:

    Spoiler anzeigen
    [autoit]


    #include <Misc.au3> ;für _IsPressed
    $size = InetGetSize("http://www.nowhere.com/somelargefile.exe") ;Jz ist $size = Größe der herunterzuladenen Datei
    InetGet("http://www.nowhere.com/somelargefile.exe", 'file.exe', 1, 1)
    Break(0) ;Verhindert Unterbrechungen
    While @InetGetActive
    TrayTip("Downloading... (Abbruch mit ESC)", "Status:" & Round( (@InetGetBytesRead/$size)*100, 2 ) & ' %', 10, 16)
    If _IsPressed('1B') Then ;Wenn ESC gedrückt wurde
    If MsgBox(64 + 4, 'Bestätigen', 'Möchten Sie den Download wirklich abbrechen ?') = 6 Then ;Anfang der If-Klausel
    InetGet('abort') ; Beende den Download
    FileDelete('C:\nLite-1.4.8.exe') ;Lösche die Datei
    Exit ; Beendet
    EndIf ;Ende der If-Klausel
    EndIf
    Sleep(100)
    WEnd

    [/autoit]

    mfg limette

    There are only 10 types of people in the world:
    Those who understand binary - and those who don't.

  • Wenn ich die MsgBox weg lasse löscht er mir den download nicht ich muß ihm doch sagen wenn das letzte fenster der installation geschlossen ist kann er die datei löschen oder sehe ich das falsch ich muß doch mit IF arbeiten?


    Mit dem Download Status klappt soweit ein Problem ist da das er den download frühzeitig abbricht es kommt aber keine fehler meldung

  • 1. Wie, der bricht frühzeitig ab ?

    2. Zur MsgBox, das hier ist dein alter Code:

    [autoit]

    WinWaitActive("Setup - nLite", "Das Setup hat die Installation von nLite auf Ihrem Computer abgeschlossen") ;hier wartet er doch auf das 'Abgeschlossen'-Fenster
    send("{enter}") ; 'Hier wird das vermutlich weggeklickt
    If MsgBox( 64, 'Die Installation von nLite-1.4.8 ist abgeschlossen', 'Drücken sie auf OK, um die Installation abzuschließen und die heruntergeladene Datei zu löschen' ) = 1 Then ;Anfang der If-Klausel
    InetGet( 'abort' ) ; Beende den Download
    FileDelete( 'C:\nLite-1.4.8.exe' ) ;Lösche die Datei
    Exit ; Beendet
    EndIf

    [/autoit]


    Wenn du doch schon mit WinWaitActive wartest, dann kannst du doch davon ausgehen,
    dass danach dieses Fenster auch offen ist. Und dann kannst du doch löschen, also
    ganz ohne If-Then ....

    [autoit]


    WinWaitActive("Setup - nLite", "Das Setup hat die Installation von nLite auf Ihrem Computer abgeschlossen")
    send("{enter}")
    FileDelete( 'C:\nLite-1.4.8.exe' ) ;Lösche die Datei

    [/autoit]

    mfg limette

    There are only 10 types of people in the world:
    Those who understand binary - and those who don't.