|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Вставка прогресс бара в функцию |
|
|
Вставка прогресс бара в функцию
|
|
$AutoITer Сообщения: 446 |
Имеется функция и в нее нужно вставить прогресс бар, и что бы действительно отображал процесс копирования
GUI построен так Всю программу я не стал выкладывать, т.к. она объемная... |
|
|
------- Отправлено: 22:55, 03-06-2009 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата 11943499:
Цитата 11943499:
).Хм, забавно, на практике всё намного хуже чем я думал - дочерний скрипт тоже не обрабатывает HotKeySet пока процесс копирование не завершится очень странный баг... |
||
|
------- Отправлено: 01:04, 24-07-2009 | #41 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать А что мешает использовать _IsPressed? Оно нормально проверяется и срабатывает.
#include <Misc.au3>
Global Const $PROGRESS_CONTINUE = 0
Global Const $PROGRESS_CANCEL = 1
Global Const $PROGRESS_STOP = 2
Global Const $PROGRESS_QUIET = 3
Global $hDll = DllOpen("User32.dll")
_FileCopyEx("E:\Downloads\Video.avi", "D:\Dest\Video.avi", 8+1)
Func _FileCopyEx($sSource, $sDest, $iFlags=0)
If Not FileExists($sSource) Then Return SetError(1)
ProgressOn("_FileCopyEx() Demo", "Копирование файла...")
Local $sFileName = StringRegExpReplace($sSource, "^.*\\", "")
Local $sFilePath = StringRegExpReplace($sDest, "\\[^\\]*$", "")
If Not BitAND($iFlags, 1) And FileExists($sDest) Then
ProgressSet(0, "Ошибка копирования файла (" & $sFileName & "):" & @CRLF & "* Перезапись файла не разрешена")
Sleep(2000)
ProgressOff()
Return SetError(2)
EndIf
If (BitAND($iFlags, 8) And Not DirCreate($sFilePath)) Or (Not StringInStr(FileGetAttrib($sFilePath), "D")) Then
ProgressSet(0, "Ошибка копирования файла (" & $sFileName & ")" & @CRLF & "* Не найдена папка назначения")
Sleep(2000)
ProgressOff()
Return SetError(3)
EndIf
Local $hCopyProgressRoutine = DllCallbackRegister("_CopyProgressRoutine", "int", _
"uint64;uint64;uint64;uint64;dword;dword;ptr;ptr;str")
Local $aRet = DllCall("Kernel32.dll", "int", "CopyFileExA", _
"str", $sSource, _
"str", $sDest, _
"ptr", DllCallbackGetPtr($hCopyProgressRoutine), _
"str", $sFileName, _
"int", 0, _
"int", 0)
DllCallBackFree($hCopyProgressRoutine)
Sleep(1000)
ProgressOff()
Return 1
EndFunc
Func _CopyProgressRoutine($TotalFileSize, $TotalBytesTransferred, $StreamSize, $StreamBytesTransferred, $dwStreamNumber, $dwCallbackReason, $hSourceFile, $hDestinationFile, $lpData)
Local $iPrecent = $TotalBytesTransferred/$TotalFileSize * 100
ProgressSet($iPrecent, "Проценты: " & Round($iPrecent, 1) & " %", "Копирую: " & $lpData)
;Abort on "Ctrl + Shift + A"
If _IsPressed("10", $hDll) And _IsPressed("11", $hDll) And _IsPressed("41", $hDll) Then
ProgressSet($iPrecent, "Проценты: " & Round($iPrecent, 1) & " % (Прервано пользователем)")
Sleep(1000)
Return ProcessClose(@AutoItPID)
;Return $PROGRESS_CANCEL
EndIf
Return $PROGRESS_CONTINUE
EndFunc
|
|
------- Отправлено: 01:23, 24-07-2009 | #42 |
|
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
|
|
|
Последний раз редактировалось 11943499, 24-07-2009 в 13:55. Отправлено: 13:04, 24-07-2009 | #43 |
|
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать А темка-то живет !
Вот еще вопросец, Как с помощью этой функции копировать файл с перетиранием системного и только для чтения ? По умолчанию она не перетирает такие файлы. |
|
Отправлено: 16:51, 24-07-2009 | #44 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
|
------- Отправлено: 17:17, 24-07-2009 | #45 |
|
Новый участник Сообщения: 36
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
![]() |
|
|
Отправлено: 18:40, 24-07-2009 | #46 |
|
Новый участник Сообщения: 39
|
Профиль | Отправить PM | Цитировать Взял прогресс бар из этой темы:
Copy With Progress Example.au3 Copy_With_Progress_Incl.au3 Обеденил в один и с конвертировал его в "exe",теперь нужно сделать так: Запуск будет через cmd\bat. И ещё при копирование не доступен рабочий стол,если можно исправить это,так как копирование очень большое. За ранее спасибо. |
|
------- Отправлено: 17:59, 06-04-2014 | #47 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата crimes:
|
|
|
Отправлено: 18:11, 06-04-2014 | #48 |
|
Новый участник Сообщения: 39
|
Профиль | Отправить PM | Цитировать Извеняюсь.
И если можно ещё его как то облегчить,и для общего понятия там файлов около 40гб файлы разные от 1 байта до 3гб. |
|
------- Последний раз редактировалось crimes, 06-04-2014 в 18:45. Отправлено: 18:40, 06-04-2014 | #49 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата crimes:
Цитата crimes:
|
||
|
Отправлено: 20:46, 06-04-2014 | #50 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| [решено] [PHP] Прогресс-бар (счетчик игроков) | D_Master | Вебмастеру | 3 | 27-03-2009 18:41 | |
| [решено] Прогресс бар | semiono | AutoIt | 17 | 24-03-2009 23:18 | |
| вставка jpg | kozerogg | Хочу все знать | 2 | 04-10-2004 14:28 | |
| Подскажите функцию в C++ | dimakus | Программирование и базы данных | 2 | 01-04-2004 14:57 | |
| Отключить функцию. | Simich | Непонятные проблемы с Железом | 14 | 04-07-2003 16:14 | |
|