Что нового

прогресс выполнения скрипта

HelpMe

Новичок
Сообщения
85
Репутация
3
Бывает так что скрипт выполняется в фоне не видно его деятельности....

Есть возможность Внедрить прогресс выполнения

Наворотами можно считать расчетное время и др.
благодарю за внимание...

можно конечно вставить что-нить нечто выплывающих окошек между строк скрипта, но думаю это не серьезно...
 
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
Re: Плавающее Окошко AUTOIT

А это то тут причем?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Автор
H

HelpMe

Новичок
Сообщения
85
Репутация
3
Re: Плавающее Окошко AUTOIT

Вовсе нет... просто подумалось так... скрипт действительно работает тихо, я просто смотрю в строку состояния :smile:
 

foster23

Новичок
Сообщения
8
Репутация
0
Здравствуйте! Не хотел создавать такую же тему. Подумал тут спросить. Меня интересует тот же вопрос - как сделать общую "прогресс строку" для индикации выполнения всего скрипта?

Вот он сам:
Код:
#include <Excel.au3>
#include <FileOperations.au3>
#include <WindowsConstants.au3>


FileRecycle(@DesktopDir & "\Мультимедиа*.xls")
FileRecycle(@DesktopDir & "\Neo*.xls")
FileRecycle(@DesktopDir & "\Goods.rar")
Sleep(500)
InetGet("http://www.neo.poltava.ua/files/Goods.rar", @DesktopDir & "\Goods.rar", 1, 0)
$SUNRAREXE = @ProgramFilesDir & "\WinRAR\UnRAR.exe"
$SRARFILE = @DesktopDir & "\Goods.rar"
$SUNRARDIR = @DesktopDir
Run($SUNRAREXE & ' e "' & $SRARFILE & '" "' & $SUNRARDIR & '"', @WorkingDir, @SW_HIDE, 2)
Sleep(500)
FileRecycle(@DesktopDir & "\Goods.rar")
$FILELIST = _FO_FILESEARCH(@DesktopDir, "Neo*.xls", True, 0, 1, 0, 0)
$EXTR = StringRegExp($FILELIST, "Neo(..)(..)(..).xls", 3)
FileMove("Neo*.xls", "Мультимедиа " & $EXTR[2] & "." & $EXTR[1] & ".20" & $EXTR[0] & ".xls")
$SFILEPATH1 = @DesktopDir & "\Мультимедиа " & $EXTR[2] & "." & $EXTR[1] & ".20" & $EXTR[0] & ".xls"
$OEXCEL = _ExcelBookOpen($SFILEPATH1, 0)
_ExcelWriteCell($OEXCEL, "", 1, 1)
_ExcelWriteCell($OEXCEL, "с.Стаси ул.Яковенка 10б", 2, 1)
$OEXCEL.ActiveSheet.Shapes.Range("Picture 1").Delete
$OEXCEL.ActiveSheet.Shapes.AddPicture(@DesktopDir & "\Мультимедиа.jpg", True, True, 0, 0, 410, 70)
$OEXCEL.ActiveSheet.Range("B3").Select
$OEXCEL.ActiveSheet.Outline.ShowLevels(1)
_ExcelBookSave($OEXCEL)
_ExcelBookClose($OEXCEL)
Sleep(500)
MsgBox(64, "Готово!", "Прайс-лист успешно обновлен!", 5)
 

BIOS

Жизнь - игра. График - супер, но сюжет - хреновый.
Сообщения
173
Репутация
69
"Угадать" прогресс - не получится
Есть два варианта:
1) Ты замеряешь сколько в среднем выполняются действия и пишешь еще одну функцию которая двигает прогресс(ProgressSet) на "прошло время/среднее время"
2) Ты сам прикидываешь какой кусок кода сколько времени занимает и расставляешь равномерно ProgressSet-ы по коду
3) Ты не прикидываешь какой кусок кода сколько времени занимает и расставляешь поэтапно ProgressSet-ы по коду
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А важен именно прогресс в процентном отношении ко всему времени выполнения?
Или просто нужны сообщения о том что что-то делается?
 

foster23

Новичок
Сообщения
8
Репутация
0
Можно и поэтапно.
Допустим:
1. Удаляем старое.
2. Получение нового файла.
3. Внесение изменений.
И чтобы была полоса прогресса (ProgressBar) и описание выполняемого действия в данный момент.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Опять 25.
ProgressBar предполагает знание общего времени выполнения процесса.
Почему обязательно ProgressBar ?
Просто ToolTip не достаточно ?
 

foster23

Новичок
Сообщения
8
Репутация
0
Ок. Объясните со всплывающими сообщениями.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Ставишь в начале скрипта
Код:
#Include <Timers.au3>

Global $Action = "hold", $lastAction = "no", $ActionTimer

AdlibRegister("ProgessTips", 1000)

Func ProgessTips()
    If $Action <> $lastAction Then
		$Action = $lastAction
		$ActionTimer = _Timer_Init()
    EndIf
	Local $time = Floor(_Timer_Diff($ActionTimer)/1000)
	ToolTip($Action&" "&$time&" сек.", 0,0)
EndFunc


Дальше по телу скрипта расставляешь где тебе нравится
Код:
$Action = "Удаляем старое"
; ...
$Action = "Получение нового файла"
; ...
 

foster23

Новичок
Сообщения
8
Репутация
0
Благодарю. Чуть позже опробую.


Добавлено:
Сообщение автоматически объединено:

На $Action'ы в теле скрипта не реагирует.
Вместо нужных надписей пишет только "no".
Вот такое: "no (цифры) сек."
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
:rofl:
сори!
Вместо
Код:
$Action = $lastAction


должно быть
Код:
$lastAction = $Action
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Верх