Funktionsreferenz


InetGet

Lädt eine Datei aus dem Internet unter Verwendung des HTTP-, HTTPS- oder FTP-Protokolls.

InetGet ( "URL" [,"filename" [, options [, background]]] )

Parameter

URL URL der herunterzuladenden Datei. Siehe Bemerkungen unten.
filename [optional] Neuer, lokaler Dateiname nach dem Download.
options [optional] 0 = (Standard) Holt die Datei aus dem lokalen Cache, wenn vorhanden.
1 = Erzwingt ein erneutes Laden von der Remote-Seite
2 = Ignoriert alle SSL-Fehler (bei HTTPS-Verbindungen).
4 = Verwendet ASCII, wenn Dateien mit dem FTP-Protokol transferiert werden (Kann mit Flag 8 kombiniert werden).
8 = Verwendet BINARY, wenn Dateien mit dem FTP-Protokol transferiert werden (Kann mit Flag 4 kombiniert werden). Dies ist der Standardtransfermodus, falls kein anderer angegeben wird.
16 = Umgeht das Erzwingen einer Onlineverbindung (Siehe Bemerkungen).
background [optional] 0 = (Standard) Wartet mit der Fortsetzung des Skripts, bis der Download abgeschlossen ist.
1 = Sofortige Fortsetzung des Skripts, während der Download im Hintergrund ausgeführt wird (siehe Bemerkungen).

Rückgabewert

Erfolg: Der Rückgabewert ändert sich abhängig davon, ob der Download im Hintergrund läuft:
Hintergrund: Ein Handle wird zurückgegeben. Das Handle kann mit InetGetInfo() verwendet werden. Das Handle muss mit InetClose() freigegeben werden.
Warten: Die Anzahl der heruntergeladenen Bytes.
Fehler: Hintergrund: Ein Handle wird zurückgegeben. Um festzustellen, ob es beim Download einen Fehler gab, ist InetGetInfo() zu verwenden. Das Handle muss mit InetClose() freigegeben werden.
Warten: Setzt @error auf nicht-Null und gibt 0 zurück.

Bemerkungen

Für diese Funktion muss Internet Explorer 3 oder höher installiert sein.

Der URL-Parameter sollte die folgende Form haben: "http://www.somesite.com/path/file.html" - wie eine Adresse, die man in den Webbrowser tippt.

Um einen Benutzernamen und Passwort zum Verbinden zu benutzen, schreibt man einfach "Username:Passwort@" vor den Servernamen, z.B. "http://myuser:mypassword@www.somesite.com"

Anmerkungen zum "filename"-Parameter
Wenn nichts angegeben wird, wird die Datei nach "C:\Users\{NAME}AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\{CODE}\update[{ZAHL}].dat" gespeichert (Pfadangabe gilt für Windows 7). Den genauen Pfad kann man bei InetGet aber nicht herausfinden, da der CODE und die ZAHL nicht bekannt sind

Anmerkungen zum "background"-Parameter
Standardmäßig wartet die Funktion mit der Fortsetzung des Skripts, bis der Download abgeschlossen ist. Wenn der Parameter background auf 1 gesetzt wird, so wird das Skript sofort fortgesetzt und der Download läuft im Hintergrund weiter. Die Funktion InetGetInfo() kann verwendet werden, um den Status des Downloads festzustellen. Sie benötigt das Handle, welches von InetGet() zurückgegeben wurde.

Mehrere parallele Downloads werden unterstützt, falls diese im Hintergrundmodus gestartet wurden.

Um einen Download abzubrechen, ist InetClose() aufzurufen und das von InetGet() zurückgegebene Handle zu übergeben.

Standardmäßig erzwingt AutoIt eine Verbindung, bevor der Download beginnt. Bei Benutzern mit einer DFÜ-Verbindung erscheint eine Nachricht, dass man Online gehen oder sich mit dem Modem einwählen soll (abhängig davon, wie das System konfiguriert ist). Der Wert 16 des options-Parameters deaktiviert dieses Verhalten. Das Deaktivieren dieses Verhaltens kann z.B. für ständige Verbindungen (Breitband, LAN) sinnvoll sein. Es ist jedoch auch geeignet, um fehlerfrei unter Windows Vista und Windows 7 arbeiten zu können.

Verwandte Funktionen

InetGetSize, InetRead, InetGetInfo, InetClose, HttpSetProxy, FtpSetProxy, HttpSetUserAgent

Beispiel


InetGet("http://www.mozilla.org", @TempDir & "\mozilla.html")
InetGet("http://www.autoitscript.com", @TempDir & "autoitscript.html", 1)
InetGet("ftp://ftp.mozilla.org/pub/mozilla.org/README", @TempDir & "\Mozilla-README.txt", 1)


; Erweitertes Beispiel - Download im Hintergrund
Local $hDownload = InetGet("http://www.autoitscript.com/autoit3/files/beta/update.dat", @TempDir & "\update.dat", 1, 1)
Do
    Sleep(250)
Until InetGetInfo($hDownload, 2) ; Prüft, ob der Download fertig ist.
Local $nBytes = InetGetInfo($hDownload, 0)
InetClose($hDownload) ; Das Handle schließen zum Freigeben der Ressourcen.
MsgBox(0, "", "gelesene Bytes: " & $nBytes)