Вообщем в некой части скрипта есть во такой код (который устанавливает прогресс бар)
Вопрос .... ! можно это ещё как либо доработать ??? 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