Lädt eine Datei aus dem Internet herunter.
UrlDownloadToFile, URL, DateiName
URL der Datei, die heruntergeladen werden soll. Zum Beispiel bewirkt https://someorg.org
, dass die Willkommensseite dieser Organisation abgerufen wird.
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.
Dieser Befehl lädt eine Datei herunter. Um stattdessen in eine Variable herunterzuladen, siehe das Beispiel unten.
[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.
ErrorLevel wird bei Misserfolg auf 1 und bei Erfolg auf 0 gesetzt.
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.
Es muss Internet Explorer 3 oder höher installiert sein, damit dieser Befehl richtig funktioniert. Firewalls oder das Vorhandensein mehrerer Netzwerkadapter können dazu führen, dass der Befehl fehlschlägt. Zudem ist es möglich, dass einige Webseiten solche Downloads blockieren.
Caching:
*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.https://www.someorg.org/doc.html?fakeParam=42
. Hinweis: Wenn Sie dieselbe Datei häufig herunterladen, muss die Abfragezeichenkette variieren.Proxies: UrlDownloadToFile verwendet einen Proxy-Server für den Internetzugriff, wenn ein solcher in den Einstellungen des Internet Explorers konfiguriert ist.
FTP und Gopher: [v1.0.48.04+] unterstützt FTP- und Gopher-URLs. Zum Beispiel:
UrlDownloadToFile, ftp://example.com/home/Meine Datei.zip, C:\Mein Ordner\Meine Datei.zip ; Anonym anmelden. UrlDownloadToFile, ftp://user:pass@example.com:21/home/Meine Datei.zip, C:\Mein Ordner\Meine Datei.zip ; Als bestimmter Benutzer anmelden. UrlDownloadToFile, ftp://benutzer:passwort@beispiel.com/Mein Verzeichnis, C:\Verzeichnisliste.html ; Ruft eine Verzeichnisliste im HTML-Format ab.
UrlDownloadToFile, https://www.autohotkey.com/download/1.1/version.txt, C:\Aktuellste AutoHotkey-Version.txt
UrlDownloadToFile, https://someorg.org/archive.zip, C:\SomeOrg's Archive.zip
Lädt Text in eine Variable herunter.
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1") whr.Open("GET", "https://www.autohotkey.com/download/1.1/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 := ComObjCreate("Msxml2.XMLHTTP")
; Request mit aktiviertem async öffnen.
req.open("GET", "https://www.autohotkey.com/download/1.1/version.txt", true)
; Unsere Rückruffunktion setzen, benötigt [v1.1.17+].
req.onreadystatechange := Func("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() {
global req
if (req.readyState != 4) ; Noch nicht fertig.
return
if (req.status == 200) ; OK.
MsgBox % "Neueste AutoHotkey-Version ist: " req.responseText
else
MsgBox 16,, % "Status " req.status
ExitApp
}