Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)

Модерирует : gyra, Maz

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
  • Справки
  • Инструменты
  • Ресурсы, посвящённые AutoIt
  • Полезные советы новичкам и не только
  • Готовые решения
  • Скрипт раскраски кода AutoIt для публикации в форумах
     


     
    За шапкой следит ViSiToR / AZJIO  

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:07 01-06-2010 | Исправлено: Maz, 12:29 10-01-2020
    Bios834

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    именно нужно чтоб с батником был, а в батнике задается куда что скачивать. Это связано стем что много батников с разными параметрами.  
    http://nnm-club.me/forum/viewtopic.php?t=1214418&sid=41b0f77a02d9fd9465b90cc0c4e1add9
     
    Добавлено:
    Skif_off Спасибо за скрипт огромное
     
    Добавлено:
    If $CmdLine[0] = 0 Then  Exit
    _Regulardownload($CmdLine[1], $CmdLine[2])
     
     
    Func _Regulardownload($bat, $name)
    Local $Pid, $Text, $Percent
    ProgressOn("Download", "Загрузка " & $name)
    $Pid = Run($bat, '', @SW_HIDE, 2 + 4)
        While 1  
            $Text = StdoutRead($Pid, False, False)  
            If @error Then ExitLoop  
            $Text = StringStripWS($Text, 8)  
            If StringRegExp($Text, '\(\d+%\)') Then  
                $Percent = StringRegExpReplace($Text, '(\[#[^\(]+\()(\d+)(%\)[^\r\n]+)', '\2', 1)  
                If @error = 0 And @extended = 1 Then ProgressSet(Number($Percent), $Percent & ' %')  
            EndIf  
        WEnd  
        ProgressOff()  
    EndFunc  
     
     
    Добавлено:
    ещё вопрос по мимо % вывеси другие параметры?

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 18:43 29-03-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bios834
    Как-то там всё не очень и не сразу понятно, глубоко лезть не хочется Как по мне, куда и что, включая параметры, может быть проще писать в текстовые файлы (батниками вполне можно их читать, ну или INI, если для AutoIt), в итоге можно подсократить их общее количество, сделав поменьше, но поуниверсальнее (если скриптов куча, но отличие в линках, именах файлов и каталогов и т.п.).

    Цитата:
    ещё вопрос по мимо % вывеси другие параметры?  

    Первая мысль - размеры всего/слитого. С другой стороны, слишком много тоже не очень хорошо: может уже стать необходимым рисовать целиком своё окно (что, с ещё одной стороны стороны, в свою очередь может позволить сделать ещё один прогресс-бар, общий для всех задач, для красоты).
    Самое простое - попробуйте модифицировать текущий как-то так и посмотреть в test.txt что и как можно выцепить. (Для StringStripWS() в таком случае, вероятно, практичее будет изменить флаг на 7 (1+2+4).)

    Всего записей: 6597 | Зарегистр. 28-01-2008 | Отправлено: 23:02 29-03-2018 | Исправлено: Skif_off, 23:07 29-03-2018
    Bios834

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Хочу сразу предупредить опыта у меня мало  в написании скриптов на AUTOIT.  2 месяца тому назад была нужна GUI оболочка для запуска программ, попробовав немного затянуло.
    Если есть возможность реализовать размер файла и сколько скачано  пример(9.4MiB/11MiB), время До завершения загрузки.
    А не подскажешь есть возможность реализовать gui Progress Bar для axel.exe тоже очень-очень  
    нужно.
    пример:
    "%~dp0Tools\axel.exe" "http://download.geo.drweb.com/pub/drweb/cureit/drweb-cureit.exe" -a -n 8 -o "%~dp0cureit.exe"
    Огромное спасибо за помощь
    Хочу сказать благодаря вашему формул я нашёл много решений, большое вам спасибо

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 09:23 30-03-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bios834
    Да я и сам не мастак, нахватался В случае aria2c поподробнее как-то вот так можно попробовать, а для axel инфы поменьше, можно как-то так попробовать (вот эти строки

    Код:
                    If $Percent == $PercentOld And $Text == $TextOld Then ContinueLoop
                    ...
                    $TextOld = $Text
                    $PercentOld = $Percent

    и сами переменные $TextOld и $PercentOld можно и грохнуть: они чуть замедляют работу, просто не нравится долбить в окно прогресса одними и теми же данными).
     
    И всё это добро можно попробовать объединить в одну кучу, чтобы не множить сущности, как-то вот так, например.
     
    P.S. А почему игнорируете теги для программного кода? Удобнее, чем с неразрывными пробелами заморачиваться.

    Всего записей: 6597 | Зарегистр. 28-01-2008 | Отправлено: 15:09 30-03-2018 | Исправлено: Skif_off, 16:30 01-04-2018
    Bios834

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off Игнорирую теги потому-что глуп еще надо будет заняться. Получилось гораздо лучше чем я ожидал особенно все в одном, только не хватает добавить wget прогресс бар. А вот еще один нюанс а если в одном BAT три качалки будут запускаться, тогда надо чтоб их скрипт распознавал и для каждого выводил свой прогресс бар.
    пример:
    @echo off
    "%~dp0Tools\axel.exe" "http://download.zemana.com/api/products/antimalware-portable-free" -a -n 8 -o "%~dp0ZemanaAM.exe"
    "%~dp0Tools\wget.exe" -N --waitretry=5 -t5 -T15 "http://www.carifred.com/ultra_adware_killer/UltraAdwareKiller64.exe" -P "%~dp0."  
    "%~dp0Tools\aria2c.exe" "http://www.carifred.com/ultra_adware_killer/UltraAdwareKiller.exe" --console-log-level=error -d "%~dp0."

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 16:47 30-03-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bios834

    Цитата:
    только не хватает добавить wget прогресс бар.

    Добавил вариант, отредактировал свой предыдущий пост, для wget есть нюанс, см. строку 12 и ниже.

    Цитата:
    А вот еще один нюанс а если в одном BAT три качалки будут запускаться

    Не знаю, как отловить, если только читать батник и запускать качалки напрямую, по отдельности заворачивая в подобнjt cmd /c КОМАНДА, с добавлением 2>&1 для wget.
     

    Цитата:
    Игнорирую теги

    Слева от окна сообщения круглая кнопка, на ней поддерживаемые форумом BBCode, для примеров кода тег code на кнопке <%.

    Всего записей: 6597 | Зарегистр. 28-01-2008 | Отправлено: 20:21 30-03-2018
    Bios834

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Все понял как пользоваться тегами. Наверное я переборщил по поводу куче загрузок в одном батнике, это надо  выводить что загружаешь, а не под одним именем. Таких батников у меня нет.
    можно просто добавить ключ который указывает скрипту чей бар выводить, а дальше батник и название программы. Огромное спасибо.

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 21:31 30-03-2018
    Bios834

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_offПривет. Опять у меня небольшая проблема aria2c.exe при скачивании файлов с торрента не хватает окно  для параметров. Skif_off не смог-бы сделать в GUI окне (ProgressOn нет параметров для изменения окна) пожалуйста.  

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 20:50 31-03-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bios834
    С aria2c вроде получилось и при скачивании по p2p, обновил свой пост с "всё в одном", см. комментарии в обработке Case 1 (все изменения там).

    Цитата:
    ProgressOn нет параметров для изменения окна

    В смысле?
     
    Добавлено:
    Забыл добавить: если AutoIt будет сильно нагружать процессор, то есть смысл попробовать добавить Sleep(10) внутри While ... WEnd.

    Всего записей: 6597 | Зарегистр. 28-01-2008 | Отправлено: 22:37 31-03-2018
    Bios834

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off

    Цитата:
    В смысле?
     
    имел виду окно по ширине и высоте.
    aria2c замечен скачек шкалы бара с 98% на 20% при завершении загрузки при скачивании с обыкновенных ссылок, а с торрента все хорошо. А так все отлично.

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 07:10 01-04-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bios834

    Цитата:
    имел виду окно по ширине и высоте.  

    Своё окно как-то так можно попробовать сделать (с возможностью прервать загрузку закрытием окна крестиком или Alt+F4).

    Цитата:
    aria2c замечен скачек шкалы бара с 98% на 20% при завершении загрузки при скачивании с обыкновенных ссылок

    Не получилось воспроизвести и в коде ничего такого не вижу. С какой-то конкретной ссылкой?
     
    Тут "всё в одном" немного подправил (опечатка, уточнение, чуть подсократил)

    Всего записей: 6597 | Зарегистр. 28-01-2008 | Отправлено: 13:52 01-04-2018 | Исправлено: Skif_off, 16:23 01-04-2018
    Bios834

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    как выше писал проблема осталась со шкалой прогресса, показывает 92% шкала скакнула на начало. картинка https://yadi.sk/i/jBK--6ew3Txfgu  
    В предыдущем скрипте отключал часть кода проходило все хорошо.  

    Код:
                        If StringInStr($Text, 'ETA:') Then  
                             ;$Text = StringRegExpReplace(StringReplace($Text, '(', ' (', 1, 1), ' (SEED|CN|SD|DL|UL):[^ ]+', '')  
                             ;$Text = StringReplace($Text, ' ETA:', ' / ', 1, 1)  
                        ;Else  
                            $Text = StringRegExpReplace(StringReplace($Text, '(', ' (', 1, 1), ' (SEED|CN|SD|DL|UL):[^ ]+', '')  
                        EndIf  

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 14:43 01-04-2018 | Исправлено: Bios834, 14:45 01-04-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bios834
    Ага, нашёл, там когда загрузка почти закончилась, aria2c перестаёт в вывод писать оставшееся время, но в регулярном выражении для получения процентов стоит ".+"

    Код:
    $Percent = StringRegExpReplace($Text, '(?s)[^\(]+\((\d+)%\).+', '\1', 1)

    и ожидается, что после закрывающей скобки будет ещё 1 или более символ (оставшееся время), а их в этом случае нет. Видимо, проглядел или осталось после проб и ошибок, прошу прощения.  
    Нужно заменить на ".*", поправил все примеры.

    Всего записей: 6597 | Зарегистр. 28-01-2008 | Отправлено: 16:32 01-04-2018
    Bios834

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Спасибо ОГРОМНОЕ. Прошел тест отлично, по твоему совету добавил  Sleep(10), чтоб меньше грузил проц.

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 18:13 01-04-2018
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bios834

    Цитата:
    Sleep(10)
    можно и больше  
    Sleep(100) обновляет 10 раз в секунду
    Sleep(300) обновляет 3 раза в секунду
    для больших файлов реже запрос. Если можно получить размер, то можно из размера с неким коэффициентом получить время для Sleep. Если час будет качать и в течении минуты увеличится на 1 процент, то смысл запрашивать 10 раз в секунду (600 раз в минуту). Пользователю достаточно при заметном движении полосы не слишком рывком, а при медленном просто посмотреть текущее состояние.
    Если размер получить не удаётся, можно получить время ожидания между двумя разными показаниями и из него задать время для Sleep, но к примеру не больше секунды.

    Всего записей: 4560 | Зарегистр. 03-05-2006 | Отправлено: 12:42 03-04-2018 | Исправлено: AZJIO, 12:44 03-04-2018
    Bios834

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    это хороший совет, но у меня ума не хватит такое реализовать.
     
    Добавлено:
    если поможете буду очень признателен.

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 15:04 03-04-2018
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bios834
    Оно и так будет работать, это я пофилосовствовать на тему идеального кода (времени конечно нет). Прога SlimDrivers старая версия тоже при скачке драйвера проц нагружала на 100%, выглядит профессионально, а такой баг пропустили. Новую версию не смотрел, она против пользователя уже написана.

    Всего записей: 4560 | Зарегистр. 03-05-2006 | Отправлено: 06:53 04-04-2018
    KingShif

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подробнее...

    Всего записей: 1 | Зарегистр. 14-04-2018 | Отправлено: 15:16 14-04-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KingShif
    Наверное, можно попробовать через временный файл, как-то так, например.
    Остаётся разобраться с username и password.
    И Sleep(): даже 1000 - это как-то дофига, ни к чему так часто долбиться, раза в минуту или несколько вполне достаточно, думаю.
     
    Добавлено:

    Цитата:
    Иначе код не будет выполнятся если выйти из системы.

    Тогда, наверное, не стоит лезть в %TEMP% пользователя, изменил на \Windows\Temp.

    Всего записей: 6597 | Зарегистр. 28-01-2008 | Отправлено: 17:01 14-04-2018 | Исправлено: Skif_off, 17:18 14-04-2018
    Parazit111



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Чё-то уже второй день не работает AutoIt.ru.
    У кого-нибудь работает?
     
    Только сказал, и заработал.

    Всего записей: 36 | Зарегистр. 19-01-2017 | Отправлено: 09:59 27-04-2018 | Исправлено: Parazit111, 10:59 27-04-2018
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
    gyra (23-01-2020 10:51): AutoIT (Часть 4)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru