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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    All
    Хочу сделать приложение, чтобы
    - без ключей запускалось как GUI
    - c ключами запускалось как СUI
    Вроде всё просто. Если ключей нет - запускаю GUI, если они есть - выхлоп идёт в консоль через ConsoleWrite. Но вот как убрать консольное окно если компилировать с #AutoIt3Wrapper_Change2CUI=y ?  
    То есть консольное окно можно конечно скрыть, но это происходит не мгновенно и получается при запуске GUI его мелькание.
     
    Что-то туплю. Не могу понять как обойти это мелькание... Есть идеи?

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 16:20 09-01-2014 | Исправлено: dialmak, 16:21 09-01-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO, предлагаю в Инструменты после Koda добавить Form Builder, к сожалению - на английском.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 08:58 10-01-2014
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dialmak
    Зачем создавать консоль, чтобы её скрывать? Делается просто логическое условие, при котором либо строится окно, либо выполняются функции без создания окон. Это обычный код, который по умолчанию не создаёт окон. Хотя своё скрытое окно он создаёт.
     
    Skif_off
    Добавь. Я ими не пользюсь, на гуи всегда меньше времени уходит, чем на обслуживающую часть.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 16:23 10-01-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Я первый набросок всегда делаю в Koda - визуальный контроль, список элементов под рукой (хотя практически всегда что-то приходится поправлять).
     
    Добавил ссылку на скачивание Form Builder и на страницу оффорума.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 00:19 11-01-2014
    dialmak



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

    Цитата:
    Зачем создавать консоль, чтобы её скрывать?  

    Разве я не написал для чего?

    Цитата:
    Хочу сделать приложение, чтобы  
    - без ключей запускалось как GUI  
    - c ключами запускалось как СUI  


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

    Если же не компилировать как консольное приложение, то функции типа ConsoleWrite работать не будут. Это в справке написано http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 20:08 11-01-2014
    AZJIO



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

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 10:42 12-01-2014 | Исправлено: AZJIO, 10:43 12-01-2014
    dialmak



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

    Цитата:
    Потому что самому писать в консоль, которую не видишь смысла нет, на то она и консоль

    Не тот случай. Для случая ключей - все данные должны выводиться в консоль.  И их нужно видеть. Внятного решения так и не нашёл, есть конечно 2 варианта в лоб.  
    - скрывать консоль для варианта GUI (мелькает зараза)
    - компилировать дважды (с #AutoIt3Wrapper_Change2CUI=y и #AutoIt3Wrapper_Change2CUI=n) и выбирать нужный exe (тут размер в 2 раза больше будет)
    Для последнего варианта думаю может как-то 7 zip можно использовать чтобы минимизировать увеличение размера?

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 17:07 12-01-2014 | Исправлено: dialmak, 17:55 12-01-2014
    NIKZZZZ



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

    Цитата:
    c ключами запускалось как СUI  

    Вопрос , а зачем?
    Если это нужно для использования в батниках, можно компильнуть и в GUI, вывод в StdOut все равно будет работать, и его можно использовать.
    Например me.au3 :

    Код:
    ConsoleWrite("12345" & @CRLF)  

     

    Код:
    me.exe - ничего не выведет
    Me.exe | more - выдаст в консоль  12345
    for /f "delims=" %%a in ('me.exe') do echo %%a - тоже выдаст в консоль  12345
    Me.exe > result.txt запишет 12345 в файл

     
    Еще вариант консольный запуск au3 скрипта:
    Крмпилим пустой скрипт AutoitCUI .au3
     
    Запускаем
     
    AutoitCUI.exe /AutoIt3ExecuteScript Me.au3 - получаем полноценный вывод в консоль.
     
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:10 12-01-2014 | Исправлено: NIKZZZZ, 19:45 12-01-2014
    dialmak



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

    Цитата:
    AutoitCUI.exe /AutoIt3ExecuteScript Me.au3 - получаем полноценный вывод в консоль.  

    Хм. Нужно попробовать поиграться.

    Цитата:
    Если это нужно для использования в батниках

    Батники это конечно хорошо, но...
    Видел не раз проги, которые умеют и в консоли и в графике работать. Даже скрипты такие есть, пример
    На офсайте есть топики на эту тему, но что-то я не увидел полностью удовлетворяющего меня решения

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 20:01 12-01-2014
    ndch

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите как сделать два щелчка мышью подряд.
    Тонкость в том что это должно быть два щелчка, а не двойной щелчёк.

    Всего записей: 6521 | Зарегистр. 31-08-2008 | Отправлено: 14:15 13-01-2014
    Skif_off

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

    Цитата:
    Тонкость в том что это должно быть два щелчка, а не двойной щелчёк.

    Разница только в промежутке времени между двумя щелчками, не?

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 14:25 13-01-2014
    ndch

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Да, пауза.
    Более того это не совсем константа: http://technet.microsoft.com/en-us/library/cc978662.aspx
    Вот и вопрос: встроенные средства, для решения такой простой задачи, отсутствуют ?

    Всего записей: 6521 | Зарегистр. 31-08-2008 | Отправлено: 14:55 13-01-2014
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ndch
    На разных системах может определятся по разному в зависимости от найтройки "Панель управления -> Мышь -> Вкладка "Кнопки мыши" -> Группа "Скорость выполнения двойного щелчка". Отсюда следует - надо установить худшие условия (позволить больший промежуток между кликами) и задать паузу Sleep(time) больше этого промежутка.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 15:02 13-01-2014
    ndch

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Так я ссылку на technet и привёл.
    900- худшее условие.
    Думалось можно штатно дважды кликнуть (не даблклик).
     
    Спасибо за советы.

    Всего записей: 6521 | Зарегистр. 31-08-2008 | Отправлено: 15:22 13-01-2014 | Исправлено: ndch, 15:23 13-01-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обычно этот параметр мало кто трогает, но можно прочитать значение параметра DoubleClickSpeed в HKCU\Control Panel\Mouse и отталкиваться от него.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 15:24 13-01-2014
    ndch

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Спасибо, я понял.

    Всего записей: 6521 | Зарегистр. 31-08-2008 | Отправлено: 16:00 13-01-2014
    jekov



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

    Всего записей: 1272 | Зарегистр. 11-09-2005 | Отправлено: 10:01 14-01-2014 | Исправлено: jekov, 08:04 16-01-2014
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Попробовал сделать программу, которая поможет создать формулу для вычисления, как это делается в Excel. Используется переменная $1 или $2, чтобы указать ссылку на ячейку.
    http://pastebin.com/UharvJPW

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 21:19 14-01-2014
    adawa



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые гуру скриптописания.
    подскажите пожалуйста как, прописать ключ в реестр, в нужное место, в независимости от версии системы (винды). если возможно.
     
    RegWrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Hettich\Selection CAD","InstDate","REG_SZ","REG_EXPAND_SZ /d $D")
     
    так для вин7х64, а хотелось бы универсальный, для всех систем.
    спасибо.

    Всего записей: 41 | Зарегистр. 26-04-2007 | Отправлено: 02:01 16-01-2014
    dialmak



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

    Цитата:
    Wow6432Node

    Ветка HKLM\SOFTWARE\Wow6432Node есть только для x64. Туда пишут данные проги x86 на  x64. x64 проги на x64 и x86  проги на x86 пишут данные в HKLM\SOFTWARE\. Поэтому вопрос я не очень понял.
    Возможно это интересует:
    Если будешь компилировать скрипт как x86, то нужно указать HKLM64\SOFTWARE\... Это обходит редирект в x64 ОС. Если компилировать x64, то сойдёт и HKLM\SOFTWARE\..
    Ну и плюс проверку битности ОС нужно.  Простые примеры (планируется компилировать как x86)

    Код:
    If @OSArch="X86" Then
    RegWrite ("HKLM\SOFTWARE\Hettich\Selection CAD", "TestKey", "REG_SZ", "Приветствую")
    Else
    RegWrite ("HKLM64\SOFTWARE\Wow6432Node\Hettich\Selection CAD", "TestKey", "REG_SZ", "Приветствую")
    EndIf

     
    Если же запустить как x86 скомпилированный скрипт  

    Код:
    RegWrite ("HKLM\SOFTWARE\Hettich\Selection CAD", "TestKey", "REG_SZ", "Приветствую")

    то для ОС x64 он запишет данные в  
    HKLM\SOFTWARE\Wow6432Node\Hettich\Selection CAD", "TestKey", "REG_SZ", "Приветствую"
     
    То есть и первый и второй скрипт пишут в одно место. Но первый обходит редирект,  а второй с помощью редиректа.

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 02:24 16-01-2014 | Исправлено: dialmak, 02:52 16-01-2014
       

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