Что нового

Помогите, зависает progressbar

Михаил

Новичок
Сообщения
20
Репутация
0
Добрый день! Столкнулся с проблемой при скачивании с FTP зависает progress. Если окно прогресса не трогать , то прогресс работает и показывает свой статус в процентах, только стоит его сдвинуть с места, сразу же зависает(статус окна "не отвечает"). Само скачивание при этом происходит. Я уже смирился с тем что не буду трогать окно прогесса, но бывает сдвиг происходит автоматически во время выполнения скрипта и все опять висит. В чем может быть проблема? Может проресс скачивание вообще, как-то по другому реализовать?

Скрипт ниже:
Код:
ProgressOn("Скачивание setup_2.10.6_.exe", "Download", "0 процентов","-1","-1",2)
Local $server = 'bigfile.ftp.ru'
Local $username = ''
Local $pass = ''
$res=0
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)
$FileSize = _FTP_FileGetSize($Conn,'/IVCOV/setup_2.10.6.exe' )
_FTP_FileGet($Conn,'/IVCOV/setup_2.10.6.exe',@ScriptDir & "\setup_2.10.6.exe",Default,Default,Default,$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)
        $res=$res+(DllStructGetData($Size, 1))
$Pct = int($RES / $FILESize * 100) ;Calculate percentage
ProgressSet($Pct, $Pct & "% download ") ;Set progress bar

    Else
       ConsoleWrite(_FTP_DecodeInternetStatus($dwInternetStatus) & @LF)
   EndIf

EndFunc ;==>FTPStatusCallbackHandler
ProgressOff()
 
Верх