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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли реализовать на AutoIT или аналоге такую задачу:
     
    В папке лежат файлы АБРАКАДАБРА.docx, представляющие из себя ZIP-архивы (Unix/Deflate).
    Внутри этих файлов заархивированы в том числе текстовые файлы с названием document.xml (TXT/UTF-8).
    Внутри document.xml в том числе имеются записи:
    ПАРАМЕТР1 ЗНАЧЕНИЕ1
    ПАРАМЕТР2</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcW w:type="dxa" w:w="4677"/></w:tcPr><w:p><w:r><w:t>ЗНАЧЕНИЕ2
    ПАРАМЕТР3 ЗНАЧЕНИЕ3
     
    Надо чтобы скрипт прочитал все файлы АБРАКАДАБРА.docx в папке и переименовал их в соответствии со значениями нужных параметров из заархивированного файла document.xml по типу  
    "своёслово1 ЗНАЧЕНИЕ1 своёслово2 ЗНАЧЕНИЕ2 своёслово3 ЗНАЧЕНИЕ3.docx".

    Всего записей: 4473 | Зарегистр. 03-03-2006 | Отправлено: 12:54 13-04-2017
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    embrace909
    Бпин перечитал и уже не понял. Да можно.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 21:00 15-04-2017 | Исправлено: AZJIO, 21:07 15-04-2017
    GAlexG



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите кто знает. Установил альтернативную сборку SciTE с дружественного форума (точнее отсюда http://autoit-script.ru/index.php?topic=18986.0). Все в ней нравится кроме одного. Не нашёл как закомментировать строку (нексолько строк) целиком. В стандартном редакторе это была клавиша "-" на доп клавиатуре. Достаточно было встать на строку либо выделить несколько строк и нажать на "-".
    Подскажите кто нибудь как включить обратно эту возможность, пытался рыть документацию по SciTE но толком ничего не нарыл.

    Всего записей: 17 | Зарегистр. 13-01-2008 | Отправлено: 20:52 16-04-2017
    musicstashall

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ищу способ получения события на открытие дочерних окон. То есть, есть скрип, отрабатывающий открытие любых окон, дает имя процесса окна, но нужно так же отследить открытие дочерних окон в этом процессе. Например, открывается окно «Сетевые подключения» — получаем событие и имя процесса explorer.exe. Далее, в этом же окне открываются свойства какого нибудь подключения, но это окно уже дочернее и нужно получить на него событие. Вот имеющийся скрипт события по основному окну:

    Код:
     
    Global Const $HSHELL_WINDOWCREATED = 1
    Global Const $HSHELL_WINDOWACTIVATED = 4;
    Global Const $HWND_MESSAGE  = -3
    Global $bHook = 1
     
    $hGui = GUICreate("", 10, 10, -1, 0,-1,-1,$HWND_MESSAGE)
    GUIRegisterMsg(_WinAPI_RegisterWindowMessage("SHELLHOOK"), "HookProc")
    ShellHookWindow($hGui, $bHook)
     
    Func hookproc($hwnd, $msg, $wparam, $lparam); функция отрабатывает при открытии любого окна
        Switch $wparam
            Case $hshell_windowcreated        
                $Win = _processgetname(WinGetProcess($lparam)); получаем имя процесса открытого окна.
            Case $hshell_windowactivated
        EndSwitch
    EndFunc
    ;процедура перехвата дочерних окон, может быть как-то так:
    Func hookproc("??????")
       $Win = _processgetname(WinGetProcess($lparam)); получаем имя процесса открытого дочернего окна
    EndFunc
     

    Всего записей: 147 | Зарегистр. 06-05-2009 | Отправлено: 15:36 19-04-2017 | Исправлено: musicstashall, 15:38 19-04-2017
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Возможно ли постоянно увеличивать на единицу значение глобальной переменной при запуске скрипта? Может какая-то директива препроцессора есть? Чтение из файла/реестра не очень хотелось бы реализовывать.

    Всего записей: 3265 | Зарегистр. 30-05-2007 | Отправлено: 10:20 09-05-2017
    Ivan20000



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Поделитесь, плиз, готовым скриптом доргена.

    Всего записей: 169 | Зарегистр. 30-11-2009 | Отправлено: 11:55 18-05-2017
    OTOXI

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет
    Научите плиз, кликать по кликабельным html элементам (кнопкам)  - используя css селекторы. В Google Chrome и Mozilla Firefox
    Буду признателен за реальный пример.  
     
    Добавлено:
    AZJIO

    Цитата:
    сейчас заменила #pragma

    Подскажите пожалуйста, в деталях, как именно узнавать кнопку с  pragma ?
     

    Всего записей: 23 | Зарегистр. 08-07-2010 | Отправлено: 03:41 23-05-2017
    HandyCache

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть батник для перазагрузки роутера
     
    kitty_portable.exe -telnet root@192.168.1.1 -pass login -cmd "password\n system reboot\n exit\n"
    exit
     
    В au3 работает до system reboot, kitty_portable.exe - обнаружена ошибка. Что изменить в au3 скрипте, чтобы он работал как и батник?
    Run('kitty_portable -telnet root@192.168.1.1 -pass login -cmd "password system reboot', '', @SW_HIDE)

    Всего записей: 130 | Зарегистр. 09-10-2008 | Отправлено: 12:11 29-05-2017
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HandyCache
    А где двойные кавычки после password system reboot ?

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 12:21 29-05-2017
    HandyCache

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Run('kitty_portable -telnet root@192.168.1.1 -pass login -cmd "password system reboot"', '', @SW_HIDE)
    Теперь вместо пароля вводится пароль + system reboot

    Всего записей: 130 | Зарегистр. 09-10-2008 | Отправлено: 12:50 29-05-2017 | Исправлено: HandyCache, 12:52 29-05-2017
    NIKZZZZ



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

    Код:
    Run('kitty_portable -telnet root@192.168.1.1 -pass login -cmd "password\n system reboot\n exit\n"', '', @SW_HIDE)  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:02 29-05-2017
    HandyCache

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Спасибо, работает!

    Всего записей: 130 | Зарегистр. 09-10-2008 | Отправлено: 13:09 29-05-2017 | Исправлено: HandyCache, 13:10 29-05-2017
    donbaton

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Стоит задача распознавать множество PDF с сохранением в PDF в пакетном режиме AutoIt скриптом для Finereader 8 http://vedomo.ru/a/s/paketnaia/AutoItOcrpdf.htm
    Проблема в том, что при одних файлах всё нормально работает, а с другими не происходит нажатие на кнопку кодом  Send("^s") сохранения после распознавания, происходит остановка и для каждого файла приходится вручную жать на клавиатуре Cntrl+S. Сам не программист, просмотрел только в основном несколько видеоуроков. Если не возможно через AutoIt, то как ещё можно сделать автоматическое нажатие при такой проблеме? Операционная система Windows XP Home.
     
    Sleep(1000);
     Send("^s")
     WinWait("Save")
     Sleep(500);
     
    Полный код (этот фрагмент ближе к концу):
    Const $FR_dir = "C:\Program Files\ABBYY FineReader 8.0 Professional Edition\"
    Run($FR_dir&"FineReader.exe")
    AutoItSetOption ( "WinTitleMatchMode" , 2 )
    $search = FileFindFirstFile("*.pdf")
    If $search = -1 Then
     MsgBox(0, "Error", "No pdf files")
     Exit
    EndIf
    While 1
     $file = FileFindNextFile($search)
     If @error Then ExitLoop
     $file_name= StringTrimRight($file, 4); имя файла без расширения ".pdf"
    WinWaitActive("ABBYY")
    SendKeepActive("ABBYY")
    Send("^n", 0); новый пакет
    Send("!f") ;
    Send("v")
     WinWaitActive("Save")
     Sleep(500)
     ControlSetText ( "Save", "", "Edit1", @WorkingDir&"\"&$file_name ); создаем папку пакета
     Sleep(500)
     Send("{ENTER}")
     Sleep(500)
     Send("^o")
     Sleep(500)
     ControlSetText ( "Open", "", "Edit1", @WorkingDir&"\"&$file ); открытие и распознавание pdf файла
     Send("{ENTER}")
     WinWaitClose("Adding")
     Sleep(500)
     WinWaitActive("ABBYY")
     Sleep(500)
     Send("^+R")
     WinWaitClose("Reading")
     Sleep(500);
     WinWaitActive("ABBYY")
     Sleep(1000);
     Send("^s")
     WinWait("Save")
     Sleep(500);
     ControlSetText ( "Save", "", "Edit1", @WorkingDir&"\"&$file_name&"\"&$file_name ); сохраняем результаты распознавания в папку пакета
     Send("{ENTER}")
     Sleep(500);
     WinWaitClose("Saving")
     Send("!f")
     Send("c") ;Закрываем пакет
    WEnd
     
    FileClose($search)
     
    ------------------------------------------------------------------
     
    Пробовал следующие варианты (не работают):
    Send("^s")
     WinWait("Save")
     Sleep(500);
     Send("^s")
     
    Send("^s")
      Sleep(500);
     Send("^s")
     WinWait("Save")
     
    Sleep(1000);
     Send("^s")
     Send("^s")
      Sleep(500);
     Send("^s")
     
    Send("^s")
       Sleep(8000);
     Send("^s")
      Sleep(22500);
     Send("^s")
     WinWait("Save")
     Sleep(500);
     Send("^s")

    Всего записей: 170 | Зарегистр. 18-03-2009 | Отправлено: 13:42 22-06-2017 | Исправлено: donbaton, 13:46 22-06-2017
    dialmak



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    donbaton может это поможет http://www.djvu-soft.narod.ru/soft/fr_auto.htm

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 13:54 22-06-2017
    donbaton

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Благодарю, это не помогло. А как можно реализовать, чтобы если нету определённое время нагрузки процессора, то чтобы посылать на электромагнитное реле, подвешенное над клавиатурой, сигнал? Чтобы сердечник со скобой опустился и нажал на кнопки.

    Всего записей: 170 | Зарегистр. 18-03-2009 | Отправлено: 22:50 22-06-2017
    U235

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    donbaton
    Остановка происходит на одних и тех же файлах или произвольных?
    Хорошо бы попробовать вести лог, например название активного окна(открытые  окна, процессы).  
    Возможно что Send("^s") отсылается не тому окну (например какое-то скрытое, модальное, не то, но тоже с ABBYY  в заголовке, которое выдает FR).  Попробуйте с SendKeepActive.
    Кроме клавиатуры есть еще мышь, можно ей попробовать понажимать кнопки в скрипте, реле это уже перебор.    Хотя   если есть Arduino и  сервопривод, то почему бы и нет..
    Не установлен ли у вас  автопереключатель клавиатуры, типа Punto Swither?
     

    Всего записей: 883 | Зарегистр. 14-12-2005 | Отправлено: 06:16 23-06-2017 | Исправлено: U235, 07:20 23-06-2017
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Товарищи, пожалуйста, подскажите, каким образом реализовать в скрипте запуск действия, только по достижению определенной даты, с ориентацией на системную дату. Как я это представляю, програмка висит в автозапускается с ОС, проверяет системную дату, если она не наступила завершает работу, если нужная дата достигнута, делает бэкап БД и только тогда завершает работу. Таким образом бэкапы будут делаться каждый раз, при загрузке ОС и достижении нужной даты. На кривой планировщик Windows 10 надежды нет... Буду Вам очень благодарен за помощь по скрипту.

    Всего записей: 707 | Зарегистр. 19-02-2008 | Отправлено: 14:28 23-06-2017 | Исправлено: Artem_Butenko, 16:06 23-06-2017
    thejustsoul



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Artem_Butenko
    Для этого подойдет планировщик, например Cron (есть под винду).

    Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 14:45 23-06-2017 | Исправлено: thejustsoul, 14:46 23-06-2017
    dialmak



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

    Цитата:
     На кривой планировщик Windows 10 надежды нет...  

    эт зря
    пример задачи, которая будет выполнятся через 5 минут после вкл. компа и плюс каждые 12 дней от имени системы.
    Подробнее...

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 15:24 23-06-2017 | Исправлено: dialmak, 15:33 23-06-2017
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    thejustsoul
    dialmak
     
    На конкретном ПК, он же сервер переустановливать систему не разрешает руководство. Планировщик работает криво. Последняя надежда на AutoIt. Базы бэкапить хочется именно так, да изобретаем велосипед заново, но это крайний вариант. Поскольку иной платный или бесплатный софт использовать не разрешено. Если у Вас есть соображения по скрипту, пожалуйста, поделитесь . Буду очень Вам благодарен.

    Всего записей: 707 | Зарегистр. 19-02-2008 | Отправлено: 16:09 23-06-2017 | Исправлено: Artem_Butenko, 16:11 23-06-2017
       

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