Вставка прогресс бара в функцию

Ответить
 • Просмотры: 1
Аватара пользователя
SyDr

Re: Вставка прогресс бара в функцию

Сообщение SyDr »

Естественно.



StringReplace($Folder1,"G:\Bakcup", $A1)

Означает, прочесать строку $Folder1 на наличие в ней "G:\Bakcup" и если оно там есть - заменить на $A1



GUICtrlSetData ( $A1, $Folder1) вместо этого следует использовать



И ещё. Советую проверять. Вдруг в окне выбора папки нажата отмена.
Аватара пользователя
Creat0R

Re: Вставка прогресс бара в функцию

Сообщение Creat0R »

11943499,

Куски кода заключайте в соот-вующие теги.




Цитата 11943499:



процесс копирования нельзя отменить
Вставка прогресс бара в функцию




Можно, если это конечно не тот же вопрос что был на руборде, тогда вы снова упускаете важные детали при постановке вопроса Изображение
Аватара пользователя
Creat0R

Re: Вставка прогресс бара в функцию

Сообщение Creat0R »

Цитата Creat0R:



Можно, если это конечно не тот же вопрос что был на руборде, тогда вы снова упускаете важные детали при постановке вопроса
Вставка прогресс бара в функцию




Постановка проста,

есть работающая функция копирования с прогрессбаром. Компильнул и пользуешься. Не хватает клавиши или кнопки отмены.

Использование горячей клавиши не идет, или запускающая ею функция не корректна для прерывания прогрессбара.

Умнее чем ProgressOff ( ) не накопал, нл оно не работает. Вот такие важные детали. Изображение
Аватара пользователя
11943499

Re: Вставка прогресс бара в функцию

Сообщение 11943499 »

Цитата 11943499:



есть работающая функция копирования с прогрессбаром. Компильнул и пользуешься. Не хватает клавиши или кнопки отмены.
Вставка прогресс бара в функцию




мне это только кажется или на ру-борде этот вопрос в тот раз еще не решили?

опять же, идея все та же - нарисовать окно, в нем пргресс бар,
прикрутить эту функцию
и
вставить кнопку отмена




Creat0R, а ты не делал пример на с отменой? что то было кажется, да найти не могу...
Аватара пользователя
proxy

Re: Вставка прогресс бара в функцию

Сообщение proxy »

Цитата 11943499:



Постановка проста
Вставка прогресс бара в функцию




Ну посмотрим:





Код:

Код: Выделить всё

#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 »

Цитата Creat0R:



Только его направляющую часть
Вставка прогресс бара в функцию




значит на досуге надо собраться нам и сделать ....а то чувствую это тема доооооооооооооооооолго тянется )
Аватара пользователя
proxy

Re: Вставка прогресс бара в функцию

Сообщение proxy »

Цитата proxy:



значит на досуге надо собраться нам и сделать
Вставка прогресс бара в функцию




Что сделать? Я же выше привёл рабочий вариант. Кроме прочего, поискать можно и найти кучу подобных решении, у меня в базе скриптов как минимум штук 5 есть.
Аватара пользователя
Creat0R

Re: Вставка прогресс бара в функцию

Сообщение Creat0R »

Цитата Creat0R:



Что сделать? Я же выше привёл рабочий вариант.
Вставка прогресс бара в функцию




Вариант рабочий, но на практике не очень. На ruborde я писал про копирование NTFS потоков, это было ошибочное заявление, там пробовал Hotkey-ем тормозить процесс, и вроде срабатывало на FAT32, но на самом деле та же история. Лучшее что происходит, так это зависание процесса копирования. Спасибо за проявленный интерес, когда гуру собираются вместе, как-то спокойно и светло на душе становится... Изображение
Аватара пользователя
11943499

Re: Вставка прогресс бара в функцию

Сообщение 11943499 »

Цитата 11943499:



Вариант рабочий, но на практике не очень. На ruborde я писал про копирование NTFS потоков, это было ошибочное заявление, там пробовал Hotkey-ем тормозить процесс, и вроде срабатывало на FAT32, но на самом деле та же история.
Вставка прогресс бара в функцию




Так в чём собственно непрактичность примера?
Аватара пользователя
Creat0R

Re: Вставка прогресс бара в функцию

Сообщение Creat0R »

Цитата Creat0R:



Так в чём собственно непрактичность примера?
Вставка прогресс бара в функцию




да все хорошо, но не работает...

Процесс копирования виснет, а не закрывается.
Ответить

Вернуться в «AutoIt»