Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » InetGet и ProgressOn

Ответить
Настройки темы
InetGet и ProgressOn

Новый участник


Сообщения: 29
Благодарности: 11

Профиль | Отправить PM | Цитировать


В справке к AutoIt есть пример для скачивания файла из интернета

читать дальше »
Код: Выделить весь код
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

; Download a file in the background.
; Wait for the download to complete.

Example()

Func Example()
    ; Save the downloaded file to the temporary folder.
    Local $sFilePath = _WinAPI_GetTempFileName(@TempDir)

    ; Download the file in the background with the selected option of 'force a reload from the remote site.'
    Local $hDownload = InetGet("http://www.autoitscript.com/autoit3/files/beta/update.dat", $sFilePath, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND)

    ; Wait for the download to complete by monitoring when the 2nd index value of InetGetInfo returns True.
    Do
        Sleep(250)
    Until InetGetInfo($hDownload, $INET_DOWNLOADCOMPLETE)

    ; Retrieve the number of total bytes received and the filesize.
    Local $iBytesSize = InetGetInfo($hDownload, $INET_DOWNLOADREAD)
    Local $iFileSize = FileGetSize($sFilePath)

    ; Close the handle returned by InetGet.
    InetClose($hDownload)

    ; Display details about the total number of bytes read and the filesize.
    MsgBox($MB_SYSTEMMODAL, "", "The total download size: " & $iBytesSize & @CRLF & _
            "The total filesize: " & $iFileSize)

    ; Delete the file.
    FileDelete($sFilePath)
EndFunc   ;==>Example

Подскажите пожалуйста, как сделать так, чтобы во время скачивания файла появлялся "ProgressOn" от 0% до 100% или размер файла в цифрах по мере его скачивания

читать дальше »
Код: Выделить весь код
Example()

Func Example()
    ; Display a progress bar window.
    ProgressOn("Progress Meter", "Increments every second", "0%")

    ; Update the progress value of the progress bar window every second.
    For $i = 10 To 100 Step 10
        Sleep(1000)
        ProgressSet($i, $i & "%")
    Next

    ; Set the "subtext" and "maintext" of the progress bar window.
    ProgressSet(100, "Done", "Complete")
    Sleep(5000)

    ; Close the progress window.
    ProgressOff()
EndFunc   ;==>Example

Как бы это скомбинировать ?

Отправлено: 14:26, 03-06-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Ну, например:
Скрытый текст
Код: Выделить весь код
#include <InetConstants.au3>

Example()

Func Example()
	Local $sUrl       = "https://download.sysinternals.com/files/ProcessExplorer.zip"
	Local $sFilePath  = @ScriptDir & "\ProcessExplorer.zip"

	Local $lTotalSize = InetGetSize($sUrl, $INET_FORCERELOAD)
	Local $dCurrentPercent

	Local $hDownload  = InetGet($sUrl, $sFilePath, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND)


	ProgressOn($sUrl, "Download progress", "0%")

	Do
		Sleep(250)
		$dCurrentPercent = InetGetInfo($hDownload, $INET_DOWNLOADREAD) / $lTotalSize * 100
		ProgressSet($dCurrentPercent, StringFormat("%.2f", $dCurrentPercent) & "%")
	Until InetGetInfo($hDownload, $INET_DOWNLOADCOMPLETE)

	Local $iBytesSize = InetGetInfo($hDownload, $INET_DOWNLOADREAD)
	Local $iFileSize  = FileGetSize($sFilePath)

	InetClose($hDownload)

	ProgressSet(100, "The total download size: " & $iBytesSize & @CRLF & "The total filesize: " & $iFileSize, "Complete")
	Sleep(3000)
	ProgressOff()
EndFunc

В реальности пользоваться приведёнными Вами примерами нельзя — надо ещё проверять возможные ошибки.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:36, 03-06-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 29
Благодарности: 11

Профиль | Отправить PM | Цитировать


Скачал файл намного большего размера и ошибок не наблюдал.

Спасибо за помощь.

Отправлено: 11:02, 04-06-2016 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата sincolinum:
и ошибок не наблюдал. »
Отключите, например, соединение во время загрузки.

Отправлено: 00:46, 05-06-2016 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » InetGet и ProgressOn

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] InetRead, InetGet - движек IE? AlexM AutoIt 5 17-04-2011 21:37
[решено] Ошибка 13 InetGet AlexM AutoIt 9 15-04-2011 23:17
[решено] inetget не скачивает AlterEgoFS AutoIt 8 24-03-2010 13:45
[решено] Закачка куска файла через InetGet FlatX007 AutoIt 18 07-07-2009 00:06
Отображение прогресса закачки файла через InetGet Creat0R AutoIt 0 18-06-2009 18:24




 
Переход