Нужна помощь в написании скрипта? Close

Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.

ВконтактеГруппа Вконтакте Электронная почтаЭлектронная почта Личная страницаСимаков Яков ВК
home icon Все разделы
comunity icon Нужна помощь?

UrlDownloadToFile -Autohotkey

Скачивает файл из интернета

UrlDownloadToFile, URL, Filename

Параметры

URL URL загружаемого файла. Например, https://ahk-wiki.ru может получить главную страницу этого сайта.
FileName Загрузка в файл: укажите имя файла, который будет создан локально, который предполагается в %A_WorkingDir%, если не указан абсолютный путь. Любой существующий файл будет перезаписан новым файлом.

Загрузка в переменную: см. Пример ниже.

Обработка ошибок

[v1.1.04 +]: эта команда может выдать исключение при ошибке. Для получения дополнительной информации см. Ошибки времени выполнения.

ErrorLevel равен 1, если возникла проблема, если же она не возникла, то он равен 0.

Замечания

Загрузка может показаться успешной, даже если удаленный файл не существует. Это связано с тем, что многие веб-серверы отправляют страницу с ошибками вместо отсутствующего файла. Эта страница с ошибкой будет сохранена вместо имени файла.

Брандмауэры или наличие нескольких сетевых адаптеров могут привести к сбою этой функции. Кроме того, некоторые сайты могут блокировать такие загрузки.

Кэширование:

[v1.0.44.07 +]: URL-адрес извлекается непосредственно с удаленного сервера (то есть никогда из кеша Internet Explorer). Чтобы разрешить кэширование, перед URL-адресом следует * 0, за которым следует пробел; например: * 0 http://someorg.org. Ноль, следующий за звездочкой, может быть заменен любым действительным номером dwFlags; для получения подробной информации, ищите InternetOpenUrl на www.microsoft.com. В версиях, предшествующих 1.0.44.07, файл извлекается из кэша, когда это возможно. Чтобы избежать этого, укажите строку запроса в конце URL-адреса. Например: http://www.someorg.org/doc.html?fakeParam=42. Примечание. Если вы часто загружаете один и тот же файл, строка запроса должна изменяться. Прокси: UrlDownloadToFile будет использовать прокси-сервер для доступа в Интернет, если такой прокси был настроен в настройках Microsoft Internet Explorer.

FTP и Gopher: [v1.0.48.04 +] поддерживает URL-адреса FTP и Gopher. Например:
UrlDownloadToFile, ftp://example.com/home/My File.zip, C:\My Folder\My File.zip ; Войти анонимно.
UrlDownloadToFile, ftp://user:pass@example.com:21/home/My File.zip, C:\My Folder\My File.zip ; Войти как конкретный пользователь.
UrlDownloadToFile, ftp://user:pass@example.com/My Directory, C:\Dir Listing.html ; Получает список каталогов в формате HTML.

Примеры

UrlDownloadToFile, https://autohotkey.com/download/1.1/version.txt, C:\AutoHotkey Latest Version.txt UrlDownloadToFile, http://someorg.org/archive.zip, C:\SomeOrg's Archive.zip ; Пример: загрузить текст в переменную: whr := ComObjCreate("WinHttp.WinHttpRequest.5.1") whr.Open("GET", "https://autohotkey.com/download/1.1/version.txt", true) whr.Send() ; Использование 'true' выше и вызова ниже позволяет скрипту оставаться отзывчивым. whr.WaitForResponse() version := whr.ResponseText MsgBox % version ; Пример: сделать асинхронный HTTP-запрос. req := ComObjCreate("Msxml2.XMLHTTP") ; Открываем запрос с включенной асинхронной синхронизацией.. req.open("GET", "https://autohotkey.com/download/1.1/version.txt", true) ; Установите нашу функцию обратного вызова [requires v1.1.17+]. req.onreadystatechange := Func("Ready") ; Отправляем запрос. Ready() будет вызван, когда запрос будет выполнен. req.send() /* ; Если вы собираетесь ждать, нет необходимости в onreadystatechange. ; Установка async = true и ожидание, как это позволяет скрипту оставаться ; реагирует на загрузку, а async = false ; сделает скрипт не отвечающим. while req.readyState != 4 sleep 100 */ #Persistent Ready() { global req if (req.readyState != 4) ; Ещё не выполнено. return if (req.status == 200) ; OK. MsgBox % "Последняя версия AutoHotKey: " req.responseText else MsgBox 16,, % "Status " req.status ExitApp }
Перевод: Артемий Галян