Вставка прогресс бара в функцию
-
SyDr
Re: Вставка прогресс бара в функцию
Естественно.
StringReplace($Folder1,"G:\Bakcup", $A1)
Означает, прочесать строку $Folder1 на наличие в ней "G:\Bakcup" и если оно там есть - заменить на $A1
GUICtrlSetData ( $A1, $Folder1) вместо этого следует использовать
И ещё. Советую проверять. Вдруг в окне выбора папки нажата отмена.
StringReplace($Folder1,"G:\Bakcup", $A1)
Означает, прочесать строку $Folder1 на наличие в ней "G:\Bakcup" и если оно там есть - заменить на $A1
GUICtrlSetData ( $A1, $Folder1) вместо этого следует использовать
И ещё. Советую проверять. Вдруг в окне выбора папки нажата отмена.
-
Creat0R
Re: Вставка прогресс бара в функцию
11943499,
Куски кода заключайте в соот-вующие теги.
Цитата 11943499:
процесс копирования нельзя отменить
Можно, если это конечно не тот же вопрос что был на руборде, тогда вы снова упускаете важные детали при постановке вопроса
Куски кода заключайте в соот-вующие теги.
Цитата 11943499:
процесс копирования нельзя отменить
Вставка прогресс бара в функцию
Можно, если это конечно не тот же вопрос что был на руборде, тогда вы снова упускаете важные детали при постановке вопроса

-
Creat0R
Re: Вставка прогресс бара в функцию
Цитата Creat0R:
Можно, если это конечно не тот же вопрос что был на руборде, тогда вы снова упускаете важные детали при постановке вопроса
Постановка проста,
есть работающая функция копирования с прогрессбаром. Компильнул и пользуешься. Не хватает клавиши или кнопки отмены.
Использование горячей клавиши не идет, или запускающая ею функция не корректна для прерывания прогрессбара.
Умнее чем ProgressOff ( ) не накопал, нл оно не работает. Вот такие важные детали.
Можно, если это конечно не тот же вопрос что был на руборде, тогда вы снова упускаете важные детали при постановке вопроса
Вставка прогресс бара в функцию
Постановка проста,
есть работающая функция копирования с прогрессбаром. Компильнул и пользуешься. Не хватает клавиши или кнопки отмены.
Использование горячей клавиши не идет, или запускающая ею функция не корректна для прерывания прогрессбара.
Умнее чем ProgressOff ( ) не накопал, нл оно не работает. Вот такие важные детали.

-
11943499
Re: Вставка прогресс бара в функцию
Цитата 11943499:
есть работающая функция копирования с прогрессбаром. Компильнул и пользуешься. Не хватает клавиши или кнопки отмены.
мне это только кажется или на ру-борде этот вопрос в тот раз еще не решили?
опять же, идея все та же - нарисовать окно, в нем пргресс бар,
Creat0R, а ты не делал пример на с отменой? что то было кажется, да найти не могу...
есть работающая функция копирования с прогрессбаром. Компильнул и пользуешься. Не хватает клавиши или кнопки отмены.
Вставка прогресс бара в функцию
мне это только кажется или на ру-борде этот вопрос в тот раз еще не решили?
опять же, идея все та же - нарисовать окно, в нем пргресс бар,
прикрутить эту функцию
и вставить кнопку отмена
Creat0R, а ты не делал пример на с отменой? что то было кажется, да найти не могу...
-
proxy
Re: Вставка прогресс бара в функцию
Цитата 11943499:
Постановка проста
Ну посмотрим:
Код:
Цитата 11943499:
Использование горячей клавиши не идет, или запускающая ею функция не корректна для прерывания прогрессбара.
По HotKeySet да, оно не сработает, видимо это из за повторного использования механизма callbak (HotKeySet это тоже своего рода callback).
Цитата proxy:
ты не делал пример на с отменой?
Только его
Постановка проста
Вставка прогресс бара в функцию
Ну посмотрим:
Код:
Код: Выделить всё
#include
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\Some big file.avi", "C:\Some big file.avi")
Func _FileCopyEx($sSource, $sDest)
If Not FileExists($sSource) Then Return SetError(1)
ProgressOn("_FileCopyEx() Demo", "Копирование файла: " & StringRegExpReplace($sSource, "^.*\\", ""))
Local $hCopyProgressRoutine = DllCallbackRegister("_CopyProgressRoutine", "int", _
"uint64;uint64;uint64;uint64;dword;dword;ptr;ptr;ptr")
DllCall("Kernel32.dll", "int", "CopyFileExA", _
"str", $sSource, _
"str", $sDest, _
"ptr", DllCallbackGetPtr($hCopyProgressRoutine), _
"ptr", 0, _
"int", 0, _
"int", 0)
DllCallBackFree($hCopyProgressRoutine)
Sleep(1000)
ProgressOff()
EndFunc
Func _CopyProgressRoutine($TotalFileSize, $TotalBytesTransferred, $StreamSize, $StreamBytesTransferred, $dwStreamNumber, $dwCallbackReason, $hSourceFile, $hDestinationFile, $lpData)
Local $iPrecent = $TotalBytesTransferred/$TotalFileSize * 100
ProgressSet($iPrecent, "Проценты: " & Round($iPrecent, 1) & " %")
If _IsPressed("1B", $hDll) Then
ProgressSet($iPrecent, "Проценты: " & Round($iPrecent, 1) & " % (Прервано пользователем)")
Return $PROGRESS_CANCEL
EndIf
Return $PROGRESS_CONTINUE
EndFuncЦитата 11943499:
Использование горячей клавиши не идет, или запускающая ею функция не корректна для прерывания прогрессбара.
Вставка прогресс бара в функцию
По HotKeySet да, оно не сработает, видимо это из за повторного использования механизма callbak (HotKeySet это тоже своего рода callback).
Цитата proxy:
ты не делал пример на с отменой?
Вставка прогресс бара в функцию
Только его
направляющую часть

-
Creat0R
Re: Вставка прогресс бара в функцию
Цитата Creat0R:
Только его направляющую часть
значит на досуге надо собраться нам и сделать ....а то чувствую это тема доооооооооооооооооолго тянется )
Только его направляющую часть
Вставка прогресс бара в функцию
значит на досуге надо собраться нам и сделать ....а то чувствую это тема доооооооооооооооооолго тянется )
-
proxy
Re: Вставка прогресс бара в функцию
Цитата proxy:
значит на досуге надо собраться нам и сделать
Что сделать? Я же выше привёл рабочий вариант. Кроме прочего, поискать можно и найти кучу подобных решении, у меня в базе скриптов как минимум штук 5 есть.
значит на досуге надо собраться нам и сделать
Вставка прогресс бара в функцию
Что сделать? Я же выше привёл рабочий вариант. Кроме прочего, поискать можно и найти кучу подобных решении, у меня в базе скриптов как минимум штук 5 есть.
-
Creat0R
Re: Вставка прогресс бара в функцию
Цитата Creat0R:
Что сделать? Я же выше привёл рабочий вариант.
Вариант рабочий, но на практике не очень. На ruborde я писал про копирование NTFS потоков, это было ошибочное заявление, там пробовал Hotkey-ем тормозить процесс, и вроде срабатывало на FAT32, но на самом деле та же история. Лучшее что происходит, так это зависание процесса копирования. Спасибо за проявленный интерес, когда гуру собираются вместе, как-то спокойно и светло на душе становится...
Что сделать? Я же выше привёл рабочий вариант.
Вставка прогресс бара в функцию
Вариант рабочий, но на практике не очень. На ruborde я писал про копирование NTFS потоков, это было ошибочное заявление, там пробовал Hotkey-ем тормозить процесс, и вроде срабатывало на FAT32, но на самом деле та же история. Лучшее что происходит, так это зависание процесса копирования. Спасибо за проявленный интерес, когда гуру собираются вместе, как-то спокойно и светло на душе становится...

-
11943499
Re: Вставка прогресс бара в функцию
Цитата 11943499:
Вариант рабочий, но на практике не очень. На ruborde я писал про копирование NTFS потоков, это было ошибочное заявление, там пробовал Hotkey-ем тормозить процесс, и вроде срабатывало на FAT32, но на самом деле та же история.
Так в чём собственно непрактичность примера?
Вариант рабочий, но на практике не очень. На ruborde я писал про копирование NTFS потоков, это было ошибочное заявление, там пробовал Hotkey-ем тормозить процесс, и вроде срабатывало на FAT32, но на самом деле та же история.
Вставка прогресс бара в функцию
Так в чём собственно непрактичность примера?
-
Creat0R
Re: Вставка прогресс бара в функцию
Цитата Creat0R:
Так в чём собственно непрактичность примера?
да все хорошо, но не работает...
Процесс копирования виснет, а не закрывается.
Так в чём собственно непрактичность примера?
Вставка прогресс бара в функцию
да все хорошо, но не работает...
Процесс копирования виснет, а не закрывается.