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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    dialmak



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

    Цитата:
    выкидывать батник тоже нельзя. в нем уже многое сделано

    Ну тогда делай всё в батнике. Не вижу препятствий.
    Вывод stdout в файл и обработка файла через for и find (findstr)
    Незачем сюда лепить autoit.  
    Хотя в autoit легче всё написать, если есть минимальный опыт.
     
    Добавлено:

    Цитата:
    в окне консоли время от времени появляются/дополняются/затираются цифры, буквы, символы

    Тогда мне неясно стало что и как.
    Без конкретики задача неясна мне.

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 23:09 01-05-2013
    Sinclair83

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alex_Piggy
    вечер добрый.
    dialmak
    Вас понял. Благодарю за ответы.

    Всего записей: 757 | Зарегистр. 07-01-2009 | Отправлено: 23:15 01-05-2013
    Alex_Piggy

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dialmak
    Действительно, без конкретики сложно.  
    Тогда две смежные конкретные задачи от меня - помогите, пожалуйста, выполнить нижеследующее любым методом, кроме эмуляции клавиш/мыши.
    1) Сохранить в файл справку команд runas или ftp.  
    2) Сохранить в файл содержимое окна стандартной команды "edit %windir%\win.ini". Пример результата, который нужно получить
    Сразу предупреждаю, что команда вида "command 1>1.txt 2>2.txt 3>3.txt 4>4.txt 5>5.txt 6>6.txt 7>7.txt 8>8.txt 9>9.txt" дает только пустые файлы. Метод, описанный в посте AutoIT - работает.
    Заранее благодарю за результат.
     

    Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 00:33 02-05-2013 | Исправлено: Alex_Piggy, 00:42 02-05-2013
    dialmak



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alex_Piggy
    1. http://img716.imageshack.us/img716/9307/92926735.png
    Вывод в переменной $sOut
    Странно, что вывод ftp /? в ANSI, а не в OEM кодировке...
    2. edit у меня нет в системе, да и непонятно зачем получать строки интерфейса. Хотя можно, в принципе ничего сложного нет.

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 00:59 02-05-2013 | Исправлено: dialmak, 01:04 02-05-2013
    Alex_Piggy

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dialmak
    Спасибо.
    1. Кодировки - неважно. Странно то, что у меня не работает... С Dir работает, а с FTP - нет.
    Система Vista Home SP3 x86. Пожалуйста, посмотрите, что я сделал неправильно (ошибка/опечатка? Что можно/нужно проверить?). test.au3. Выходит на "if @error Then ExitLoop".
    2. Думал, что edit есть во всех системах. Просто как пример получения максимального количества текста из консольного приложения/окна.  
    Если не затруднит, пожалуйста покажите пример/направление на консольной программе/утилите (с интерфейсом?), которая у Вас есть. Может у Вас доступен AVSIM85, QBasic или BorlandC (на которых, кстати, копирование через Alt+Space спотыкается)? FAR, NC, VC?
     
    Добавлено: На примере из следующего поста (разделенные StdErr и StdOut) один раз показывает пустой messagebox.

    Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 01:31 02-05-2013 | Исправлено: Alex_Piggy, 02:37 02-05-2013
    dialmak



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alex_Piggy
    хз. вот пример из справки. здесь разделено stdout и stderr

    Код:
    ; Demonstrates StdoutRead()
    #include <Constants.au3>
     
    Local $foo = Run(@ComSpec & " /c ftp /?", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    Local $line
    While 1
        $line = StdoutRead($foo)
        If @error Then ExitLoop
        MsgBox(0, "STDOUT read:", $line)
    WEnd
     
    While 1
        $line = StderrRead($foo)
        If @error Then ExitLoop
        MsgBox(0, "STDERR read:", $line)
    WEnd

    Вывод  ftp /? идёт в stderr, а не в stdout
    В принципе StdoutRead() это неидеальный вариант, наверно есть лучше и надёжней способы. Погоди - может кто-то подскажет.

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 02:17 02-05-2013
    dialmak



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

    Цитата:
    На примере из следующего поста (разделенные StdErr и StdOut) один раз показывает пустой messagebox.

    Естественно. ПОтому что
    Цитата:
    Вывод  ftp /? идёт в stderr, а не в stdout  

     
     
    Добавлено:
    Убрать пустышку легко сделав проверку и перенаправив вывод $STDERR_MERGED  

    Код:
    #include <Constants.au3>
    Local $foo = Run(@ComSpec & " /c ftp /?", @SystemDir, @SW_HIDE, $STDERR_MERGED)
    Local $line
    While 1
        $line = StdoutRead($foo)
        If @error Then ExitLoop
        If $line <> "" Then
        MsgBox(0,"Out",$line)
        EndIf
    WEnd

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 09:35 02-05-2013 | Исправлено: dialmak, 09:56 02-05-2013
    Alex_Piggy

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

    Цитата:
    Естественно. Потому что
    Вывод  ftp /? идёт в stderr, а не в stdout  

    К сожалению, для меня это не естественно. Потому что  
    а) 7 строка - это "$line = StdoutRead($foo)" а 13 строка - "$line = StderrRead($foo)". То есть по логике один msgbox должен быть с содержимым StdOut, а второй - StdErr. Можно проверить, предположив, что StdErr - второй поток и набрав команду  
    Local $foo = Run(@ComSpec & " /c ftp /?", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD).
    Результат - с подписью "StdOut read" - один пустой, второй с "123", и с подписью "StdErr read" - один с "456"
    б) Я уже упоминал, что "ftp /? 1>1.txt 2>2.txt 3>3.txt 4>4.txt 5>5.txt 6>6.txt 7>7.txt 8>8.txt 9>9.txt" дает только пустые файлы. Попробуйте, пожалуйста выполнить эту команду из командной строки у себя - думаю, что справка будет в 2.txt.
    Скорее всего поведение команды ftp изменили между Vista и Win7, как изменили между XP и Vista. И, наверное, у runas тоже могли поменять... Не знаю, что использовать для testcase. Можете пожалуйста попробовать - запуститься/не запустится у Вас ftp.exe от Vista? И как себя будет вести?

    Цитата:
    Убрать пустышку легко сделав проверку и перенаправив вывод $STDERR_MERGED

    Так я получаю или пустышку или вообще ничего...

    Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 10:31 02-05-2013
    dialmak



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

    Цитата:
    То есть по логике один msgbox должен быть с содержимым StdOut, а второй - StdErr.  

    Так и есть

    Цитата:
    StdErr - второй поток

    конечно второй
    аналог в cmd
    command 2>out.txt
    совмещённый вывод
    command >out.txt 2>&1

    Цитата:
    Так я получаю или пустышку или вообще ничего...

    странно, возможно нужно влепить задержку небольшую Sleep(100)
     
     
     
    Добавлено:
    ваша ftp у меня не работает
     
    Добавлено:
    Ну странная какая-то это команда ftp - вывод хелпа во втором потоке.... Остальные, что пробовал работают без сучка.

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 11:20 02-05-2013 | Исправлено: dialmak, 11:27 02-05-2013
    Alex_Piggy

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

    Цитата:
    странно, возможно нужно влепить задержку небольшую Sleep(100)

    При чем здесь задержка... Не идет ничего ни в StdOut ни в StdErr, ни в один из 9 стандартных потоков.
    У меня в Висте из стандартных команд runas, ftp - не выводит в стандартные потоки. Куда и как выводит непонятно. route - выводит в  справку в StdErr. В ХР по памяти - только runas (но тоже непонятно куда и как).
    Наверное это только при помощи TeamViewer получится убедить/показать. Спасибо за помощь.

    Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 13:05 02-05-2013
    dialmak



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

    Цитата:
    У меня в Висте из стандартных команд runas, ftp - не выводит в стандартные потоки.

    Ну никто и не говорил, что винда вылизана и багов нет. Есть конечно и баги.
    С другой стороны StdIn, StdOut и StdErr работают, если используются адекватные команды cmd. Жаль нет tee в AutoIt.  
    В своё время активно пользовался внешней  mtee.

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 19:49 02-05-2013
    euheny



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    купил себе планшет
    вобщем хотел на винде но дороговизна склонила в пользу андроида
    вот теперь инструмент похожий на AutoIT найти бы
     
    может кто знает ?

    Всего записей: 4064 | Зарегистр. 22-11-2006 | Отправлено: 18:39 04-05-2013
    NIKZZZZ



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

    Цитата:
     инструмент похожий на AutoIT

    Посмотри PureBasic, не совсем похож, но мультиплаформенный.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 21:20 04-05-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    PureBasic, он ведь платный и по сложности он между AutoIt3 и Си. Может тогда уж сразу за Си браться.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 22:27 04-05-2013
    NIKZZZZ



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

    Цитата:
    PureBasic, он ведь платный и по сложности он между AutoIt3 и Си.

    Ну с Си его равнять сложно - простые вещи писать значительно проще. Да и бесплатная пробная версия многое может.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:40 04-05-2013
    AZJIO



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

    Цитата:
    подскажите сценарий, задача состоит в том что бы с помощью скрипта можно была подключиться к сетевому принтеру

    В справке попалась функция _WinAPI_SetDefaultPrinter

    Цитата:
    Имя принтера по умолчанию. Для удаленного принтера формат имени \\server\printername. Для локального принтера формат имени это "имя_принтера". Если этот параметр равен "" (пустой строке), то функция ничего не делает, если какой либо принтер уже определён как принтер по умолчанию. Однако если принтер по умолчанию отсутствует, то функция делает первый в списке принтер принтером по умолчанию, если таковые имеются, в списке установленных принтеров на локальном компьютере.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 15:05 05-05-2013
    exBuldos

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста, как запустить определенную программу во время старта любой экранной заставки win7 x64?

    Всего записей: 263 | Зарегистр. 22-10-2002 | Отправлено: 14:41 06-05-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть 2 файла (в 7z архиве).
    Файлы являются логами изменений. Необходимо получить разницу между предыдущими и текущими изменениями по каждой группе. Т.е. надо как-бы сравнить эти 2 файла.
     
    Например, получим изменения по группе * android:
    Старый лог:

    Цитата:
       * android
    319d647 manifest: cm-10.1-20130501.xml
    8f6e458 Save manifest as cm-10.1-20130501.xml for androidarmv6
    2990153 Remove cm manifests
    a56a158 Merge remote branch 'cm/cm-10.1' into cm-10.1
    11823bf Add AOSP Review
    b3eb823 Revert "add Heimdall"
    566860d Merge remote branch 'cm/cm-10.1' into cm-10.1

    Новый лог:

    Цитата:
       * android
    094a940 manifest: cm-10.1-RC1.xml
    319d647 manifest: cm-10.1-20130501.xml
    8f6e458 Save manifest as cm-10.1-20130501.xml for androidarmv6
    2990153 Remove cm manifests
    a56a158 Merge remote branch 'cm/cm-10.1' into cm-10.1
    11823bf Add AOSP Review
    b3eb823 Revert "add Heimdall"
    566860d Merge remote branch 'cm/cm-10.1' into cm-10.1

     
    Видим, что в новом чейнджлоге добавилась строка (выделена красным). Ее надо будет вывести в наш отчет без 094a940 в группу * android. И так дальше по каждой группе. Какие-то группы возможно могут отсутствовать в одном логе, но присутствовать в другом логе.
    Думаю, что эта задача решается регулярками, но у меня как-то сложно с ними.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 15:56 07-05-2013
    Alex_Piggy

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

    Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 03:59 08-05-2013 | Исправлено: Alex_Piggy, 11:51 08-05-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alex_Piggy -- спасибо за варианты , но больно уж они медленные. Надо бы что-нибудь пошустрее.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 09:49 08-05-2013
       

    Страницы: 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