moonshiner
Новичок
- Сообщения
- 4
- Репутация
- 0
Беру файлы с FTP через _FTP_FileGet, нужно показывать прогресс в GUI
Бьюсь над данной проблемой, в мануале есть только один пример
Грешным делом подумал, что количество прочитанных байт берется из переменной iBytesRead. Но после проверки выяснилось, что значение этой переменной всегда =4. Вне зависимости от размера скачеваемого контента.
К сожалению очень мало информации о данном методе, был бы благодарен за ссылку на хорошую справку, или готовый пример.
P.S. InetGet Не предлагать, не работает эта функция у меня.
Бьюсь над данной проблемой, в мануале есть только один пример
Код:
#include <FTPEx.au3>
#include <Debug.au3>
_DebugSetup(StringTrimRight(@ScriptName, 4) & ' example', True)
Local $server = 'ftp.mozilla.org'
Local $username = ''
Local $pass = ''
Local $Open = _FTP_Open('MyFTP Control')
Local $Callback = _FTP_SetStatusCallback($Open, 'FTPStatusCallbackHandler')
Local $Conn = _FTP_Connect($Open, $server, $username, $pass, 0, $INTERNET_DEFAULT_FTP_PORT, $INTERNET_SERVICE_FTP, 0, $Callback)
Local $Ftpc = _FTP_Close($Open)
Func FTPStatusCallbackHandler($hInternet, $dwContent, $dwInternetStatus, $lpvStatusInformation, $dwStatusInformationLength)
#forceref $hInternet, $dwContent
If $dwInternetStatus = $INTERNET_STATUS_REQUEST_SENT Or $dwInternetStatus = $INTERNET_STATUS_RESPONSE_RECEIVED Then
Local $Size, $iBytesRead
$Size = DllStructCreate('dword')
_WinAPI_ReadProcessMemory(_WinAPI_GetCurrentProcess(), $lpvStatusInformation, DllStructGetPtr($Size), $dwStatusInformationLength, $iBytesRead)
_DebugOut(_FTP_DecodeInternetStatus($dwInternetStatus) & ' | Size = ' & DllStructGetData($Size, 1) & ' Bytes Bytes read = ' & $iBytesRead)
Else
_DebugOut(_FTP_DecodeInternetStatus($dwInternetStatus))
EndIf
EndFunc ;==>FTPStatusCallbackHandler
Грешным делом подумал, что количество прочитанных байт берется из переменной iBytesRead. Но после проверки выяснилось, что значение этой переменной всегда =4. Вне зависимости от размера скачеваемого контента.
К сожалению очень мало информации о данном методе, был бы благодарен за ссылку на хорошую справку, или готовый пример.
P.S. InetGet Не предлагать, не работает эта функция у меня.