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

Показать сообщение отдельно

Аватара для FlatX007

Ветеран


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

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


Вообщем в некой части скрипта есть во такой код (который устанавливает прогресс бар)

Вопрос .... ! можно это ещё как либо доработать ??? Creat0R (скрипт рабочий) и ещё у меня ошибка в начале где : If $ySize_Total == 451490049 Then и я немогу понять почему.

Код: Выделить весь код
;*********

            $ScriptDir = @ScriptDir
            $sDrive_Selected = "D:\"
            ;Проверяем размер копируеммых файлов
            $ySize_Menu = DirGetSize($ScriptDir & "\" & "Menu"); Папка на источника
            $ySize_Soft = DirGetSize($ScriptDir & "\" & "Soft"); Папка на источника
            $ySize_Total = $ySize_Soft + $ySize_Menu ; Размер фалов на источнике всего - 451 490 049 байт

;~          If $ySize_Total == 451490049 Then
;~                  ContinueLoop
;~              Else
;~                  MsgBox(0, "Внимание", "Произошла ошибка при проверке размера копируемых файлов")
;~              Exit
;~          EndIf

            IniWrite (@TempDir & '\CopyToUsb.ini', "settings", "KeyDrive", $sDrive_Selected); Записывам в INI выбранный диск например J:\
            IniWrite (@TempDir & '\CopyToUsb.ini', "settings", "KeyPATH", $ScriptDir) ; Записываем в INI путь папки из которой запущен скрипт

            GUISetState(@SW_DISABLE, $hGUI) ;Блокируем GUI на время копирования
            ProgressOn("", "Идёт копирование", "" ,100 ,100 ,1)
            FileInstall (@ScriptDir & '\CopyToUsb.exe', @TempDir & '\CopyToUsb.exe', 1)
            Run(@TempDir & '\CopyToUsb.exe')

    $w = 0
    While $w < 1
            $zSize_Menu = DirGetSize($sDrive_Selected & "Menu");папка на приёмнике
            $zSize_Soft = DirGetSize($sDrive_Selected & "Soft");папка на приёмнике

            $zSize_Total = $zSize_Soft + $zSize_Menu ; Размер фалов на приёмнике Итог после окончания копирования должен быть 451 490 049 байт
            $zSize_1 = $zSize_Total / 1000000; Итог 451.ххх
            $zSize_PrBar = Round(($zSize_1) + 49) / 5; = 100

            $Ver_Copy = IniRead(@TempDir & '\CopyToUsb.ini', "settings", "Copy", "default") ; Cчитываем из INI значение о правильности копирования

            ProgressSet($zSize_PrBar, $zSize_PrBar & "  % выполнения")
                sleep(300)

            If $zSize_Total < 451490049 Then
                $w = 0
            Else
                    If $Ver_Copy = 1 Then
                        ProgressSet(100 , "Готово", "Выполнено")
                        sleep(3000)
                        ProgressOff()
                        $w = 2
                        MsgBox(64, "Внимание", "Копирование прошло удачно")
                    EndIf

                    If $Ver_Copy = 0 Then
                        ProgressSet(100 , "Ошибка", "Не выполнено")
                        sleep(3000)
                        ProgressOff()
                        MsgBox(16, "Внимание", "Произошла ошибка при копировании")
                        Exit
                    EndIf
            EndIf
    WEnd

        GUISetState(@SW_ENABLE, $hGUI)
        Case $GUI_EVENT_CLOSE, $Cancel_Button
            ExitLoop
    EndSwitch
WEnd


Впоследствии это станет "CopyToUsb.exe" который находится внутри закомпилированного скрипта (он выше) и сопсн говоря это приложение и будет выполнять копирование
Код: Выделить весь код
#NoTrayIcon

$sDrive = IniRead(@TempDir & '\CopyToUsb.ini', "settings", "KeyDrive", "default1"); Считываем из INI выбранный диск например J:\
$sScriptDir = IniRead(@TempDir & '\CopyToUsb.ini', "settings", "KeyPATH", "default2"); Считываем из INI путь папки из которой запущен скрипт

While 1

        $xVer_1 = DirCopy($sScriptDir & "\" & "Menu", $sDrive & "Menu")
        $xVer_2 = DirCopy($sScriptDir & "\" & "Soft", $sDrive & "Soft")
        $xVer = $xVer_2 + $xVer_1

    If $xVer == 2 Then
        IniWrite (@TempDir & '\CopyToUsb.ini', "settings", "Copy", "1"); Записывам в INI о том что копирование удачно
        ExitLoop
    Else
        IniWrite(@TempDir & '\CopyToUsb.ini', "settings", "Copy", "0") ; Записываем в INI о том что копирование неудачно
        ExitLoop
    EndIf

WEnd

;~ FileDelete(@TempDir & '\CopyToUsb.ini')

Exit

Отправлено: 01:50, 15-01-2009 | #1531