11943499
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Спасибо, ребята, за помощь. ) Решил задачу по другому, но даже более эффективно. Использовал вызов сторонней проги из самого AI. Теперь другой вопрос, может кто знает ? В заголовке форума есть пример скриптов для копирования файлов с прогресс баром. Штука классная, работает, но окно с индикатором тупо стоит в центре экрана и не двигается мышкой, и процесс копирования невозможно прервать. Ниже привожу копию кода, что тут вставить и куда, чтобы можно было бы загнать окошко в угол экрана (или хотя бы перемещать), а также добавить возможность прерывания процесса копирования ? ************************************************************ Копирование большого файл с отображением данных прогресса: (Требуется библиотека DllCallBack.au3). Код: #include <DllCallBack.au3> _FileCopyEx("C:\BigFile.avi", @ScriptDir & "\BigFile.avi") Func _FileCopyEx($Source, $Dest) If Not FileExists($Source) Then Return SetError(1) ProgressOn("_FileCopyEx() Demo", "Копирование, ждите плиз...") $pCopyProgressRoutine = _DllCallBack("_CopyProgressRoutine", "uint64;uint64;uint64;uint64;dword;dword;ptr;ptr;ptr") DllCall("kernel32.dll", "int", "CopyFileExA", _ "str", $Source, _ "str", $Dest, _ "ptr", $pCopyProgressRoutine, _ "ptr", 0, _ "int", 0, _ "int", 0) _DllCallBack_Free($pCopyProgressRoutine) Sleep(1000) ProgressOff() EndFunc Func _CopyProgressRoutine($TotalFileSize, $TotalBytesTransferred, $StreamSize, $StreamBytesTransferred, $dwStreamNumber, $dwCallbackReason, $hSourceFile, $hDestinationFile, $lpData) $Precent = $TotalBytesTransferred/$TotalFileSize*100 ProgressSet($Precent, "Проценты: " & Round($Precent, 1) & " %") Return 0 EndFunc ;==>_CopyProgressRoutine ************************************************************** | Всего записей: 132 | Зарегистр. 06-10-2008 | Отправлено: 22:57 27-06-2009 | Исправлено: 11943499, 23:01 27-06-2009 |
|