Download

Lädt eine Datei aus dem Internet herunter.

Download URL, DateiName 

Parameter

URL

Typ: Zeichenkette

URL der Datei, die heruntergeladen werden soll. Zum Beispiel bewirkt "https://someorg.org", dass die Willkommensseite dieser Organisation abgerufen wird.

DateiName

Typ: Zeichenkette

Geben Sie den Namen der Datei an, die lokal erstellt werden soll. Wenn kein absoluter Pfad angegeben ist, wird die Datei im A_WorkingDir-Verzeichnis vermutet. Eine bereits vorhandene Datei wird mit der neuen Datei überschrieben.

Diese Funktion lädt eine Datei herunter. Um stattdessen in eine Variable herunterzuladen, siehe das Beispiel unten.

Fehlerbehandlung

Bei Misserfolg wird eine Ausnahme ausgelöst.

Bemerkungen

Der Download könnte auch dann als Erfolg gewertet werden, wenn die Remote-Datei nicht existiert. Der Grund dafür ist, dass viele Webserver anstelle der fehlenden Datei eine Fehlerseite senden. Und genau diese Fehlerseite wird anstelle von DateiName gespeichert.

Firewalls oder das Vorhandensein mehrerer Netzwerkadapter können dazu führen, dass die Funktion fehlschlägt. Zudem ist es möglich, dass einige Webseiten solche Downloads blockieren.

Caching: Standardmäßig wird die URL direkt vom Remote-Server abgerufen (also nie aus dem Cache des Internet Explorers). Um das Caching zu erlauben, stellen Sie der URL ein *0 gefolgt von einem Leerzeichen voran, z.B. "*0 https://someorg.org". Die 0 nach dem Sternchen kann mit einer gültigen dwFlags-Nummer ersetzt werden; suchen Sie nach InternetOpenUrl auf www.microsoft.com für weitere Details.

Proxies: Wenn ein Proxy-Server in den Einstellungen des Internet Explorers konfiguriert wurde, wird dieser verwendet.

FTP- und Gopher-URLs werden ebenfalls unterstützt. Zum Beispiel:

Download "ftp://example.com/home/Meine Datei.zip", "C:\Mein Ordner\Meine Datei.zip"  ; Anonym anmelden.
Download "ftp://user:pass@example.com:21/home/Meine Datei.zip", "C:\Mein Ordner\Meine Datei.zip"  ; Als bestimmter Benutzer anmelden.
Download "ftp://benutzer:passwort@beispiel.com/Mein Verzeichnis", "C:\Verzeichnisliste.html"  ; Ruft eine Verzeichnisliste im HTML-Format ab.

FileRead, FileCopy

Beispiele

Lädt eine Textdatei herunter.

Download "https://www.autohotkey.com/download/2.0/version.txt", "C:\Aktuellste AutoHotkey-Version.txt"

Lädt eine ZIP-Datei herunter.

Download "https://someorg.org/archive.zip", "C:\SomeOrg's Archive.zip"

Lädt Text in eine Variable herunter.

whr := ComObject("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", "https://www.autohotkey.com/download/2.0/version.txt", true)
whr.Send()
; Durch das 'true' oben und den Aufruf unten bleibt das Skript responsiv.
whr.WaitForResponse()
version := whr.ResponseText
MsgBox version

Macht einen asynchronen HTTP-Request.

req := ComObject("Msxml2.XMLHTTP")
; Request mit aktiviertem async öffnen.
req.open("GET", "https://www.autohotkey.com/download/2.0/version.txt", true)
; Unsere Rückruffunktion setzen.
req.onreadystatechange := Ready
; Den Request senden.  Ready() wird bei Abschluss aufgerufen.
req.send()
/*
; Wenn Sie warten wollen, brauchen Sie kein onreadystatechange.
; Wenn Sie async=true setzen und auf diese Weise warten, bleibt das Skript
; responsiv, während der Download läuft, wogegen async=false
; das Skript unresponsiv macht.
while req.readyState != 4
    sleep 100
*/
Persistent

Ready() {
    if (req.readyState != 4)  ; Noch nicht fertig.
        return
    if (req.status == 200) ; OK.
        MsgBox "Neueste AutoHotkey-Version ist: " req.responseText
    else
        MsgBox "Status " req.status,, 16
    ExitApp
}