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

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

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

    Всего записей: 317 | Зарегистр. 03-09-2010 | Отправлено: 16:07 09-02-2012
    spichka



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

    Цитата:
    1. Есть родная функция AdlibRegister.
    2. Можно при входе в функцию разрегистрировать все другие, а на выходе снова зарегистрировать.

     
    Спасибо за ответ.
    А подробнее пожалуйста? Покажите схематично.
    Правильно ли я понимаю что:
     имеется 3 Adlib функции

    Код:
    AdlibRegister(func10,10000) ; каждые 10 сек выполняется
    AdlibRegister(func50,50000)  
    AdlibRegister(func25,25000)
     
     Func func10
       AdlibUnRegister() - что тут писать надо?  
               любой код, по времени выполнения НЕОГРАНИЧЕННЫЙ временем вызова ДРУГИХ Adlib-функций (func50,func25),
              а также повторным вызовом func10 через 10секунд.
       AdlibRegister() - и что тут писать надо?
      EndFunc

     

    Всего записей: 22 | Зарегистр. 29-04-2006 | Отправлено: 20:54 09-02-2012 | Исправлено: spichka, 20:56 09-02-2012
    lorents



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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 21:09 09-02-2012 | Исправлено: lorents, 00:42 10-02-2012
    AZJIO



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

    Цитата:
    AdlibUnRegister() - что тут писать надо?  

    Наверно имя функции, которую нужно отключить.

    Цитата:
    AdlibRegister() - и что тут писать надо?  

    Наверно скопировать верхние три функции, чтоб не писать...

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 03:12 10-02-2012 | Исправлено: AZJIO, 03:16 10-02-2012
    madmasles

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

    Цитата:
    все 3 функции должны быть разрегистрированы
    Так работать будет только одна функция, та у которой самый маленький период вызова. Простой пример: Читать дальше..
    Может, как-то так попробовать? Читать дальше..

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 03:49 10-02-2012 | Исправлено: madmasles, 04:17 10-02-2012
    AZJIO



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

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 16:42 10-02-2012
    spichka



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Емое.  
    Спасибо за ответ madmasles
     
    Я три раза переделываю прогу
    вначале писал с Adlib, потом решил с таймерами (как ты пишешь выше), потом решил что таймеры неправильно, а правильно адлиб, вернулся к ним.
     
     
    Почему я ушел от таймеров.  
    Будем считать что таймер1   2 сек, таймер2 - 5 сек, таймер 3 - 10 секунд
    Не получится ли что во время выполнения функций из таймера №1  наступит время выполнения таймера 2, 3, или снова 1 ?
    К примеру будет стоять задержка или Sleep(2000) - как тут разрулить?
     
     
    ======================увидел сообщение от AZJIO=============
    http://forum.ru-board.com/topic.cgi?forum=5&topic=33902&start=1665&limit=1&m=1#1
    вроде неплохой вариант.
    Сейчас вот сижу, обдумываю. Не бросаюсь переделывать
    Жду ещё мнений
     
    Добавлено:
     
    madmasles
    http://forum.ru-board.com/topic.cgi?forum=5&topic=33902&start=1664&limit=1&m=2#1
    посмотрел. да, вариант неплохой
     
    Но есть одно НО.
     
    Я ставил задержкиб ольше чем у тебя  
    Sleep(Random(1000, 2000, 1))  
    Я ставил Sleep(Random(3000, 4000, 1))  - и уже были сбои.
     
    Остается один вариант. Внимательно писать коды функций чтоб не получалось задержек больше чем на 1-2 сек.

    Всего записей: 22 | Зарегистр. 29-04-2006 | Отправлено: 16:44 10-02-2012 | Исправлено: spichka, 16:46 10-02-2012
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    spichka
    Там принцип тот же что и с тригерами, если одна функция началась, другие максимум могут встать в очередь, но пока одна не закончилась, вторая не начнётся. И если функции выполняются долго, то по идее они просто будут поочереди выполнятся.
    Иное поведение, только результат ваших ошибок.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 19:30 10-02-2012
    dstor

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребята! ткните пожалуйста на пример скрипта автоматического нажатия кнопки в свернутом окне?
    спасибо

    Всего записей: 317 | Зарегистр. 03-09-2010 | Отправлено: 13:44 11-02-2012
    AZJIO



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

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 14:41 11-02-2012
    spichka



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO, спасибо за участие и советы.
     
    Такой ещё вопросик ко всем.
     
    Вот допустим я сделал бесконечный цикл, по триггерам срабатывают функции.
    Нажал я паузу (по хоткей).
     
    Как вернуть точку выполнения программы в то место откуда попал на паузу?

    Всего записей: 22 | Зарегистр. 29-04-2006 | Отправлено: 23:29 11-02-2012 | Исправлено: spichka, 23:30 11-02-2012
    AZJIO



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

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 00:16 12-02-2012
    dstor

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребята! очень нужно автоматическое нажатие горячей клавиши с интервалом времени в свернутое окно
    никогда программированием не занимался и отсюда просьба - напишите пожалуйста инструкцию
    спасибо

    Всего записей: 317 | Зарегистр. 03-09-2010 | Отправлено: 16:15 16-02-2012
    nikkey2x2

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

    Код:
    HotKeySet("{NUM1}","_Exit")
    While 1
    ControlSend ( "имя_окна", "", "", "что_слать")
    WEnd
    Func _Exit()
    Exit
    EndFunc

    По нажатию Numpad1 выключается.

    Всего записей: 1 | Зарегистр. 04-01-2012 | Отправлено: 16:50 16-02-2012 | Исправлено: nikkey2x2, 16:50 16-02-2012
    dstor

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nikkey2x2
    ух ты, спасибо, а интервал времени где задается?
     
    Добавлено:
    так, еще вопрос - скачал autoit, запускаю, открывается окно "run script:" и что дальше?
     
    Добавлено:
    вроде разобрался, только не могу понять, почему во время выполнения скрипта я не мог нормально напечатать текст - половина букв автоматически печатались большими, а при открытии папки на рабочем столе одновременно открывался мой компьютер
    закрыл autoit, через пару минут прошло, так ведь не должно быть
     
    Добавлено:
    да, еще мышь притомаживала

    Всего записей: 317 | Зарегистр. 03-09-2010 | Отправлено: 17:30 16-02-2012
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dstor, после While 1 поставь Sleep (1000), задержка 1 сек.
    без задержки большая нагрузка на процессор.
     
     
     
    ----------- updated --------------
    про свёрнутое окно есть в шапке
    http://forum.ru-board.com/topic.cgi?forum=5&topic=29240&start=1140#5
    да, задержка в миллисекундах.

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 19:45 16-02-2012 | Исправлено: ynbIpb, 20:25 16-02-2012
    dstor

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ynbIpb
    нормально! только экспериментируя с вордом и блокнотом буква печатается только когда окно активное, т.е. свернул окошко, через пару минут развернул и продолжает печатать с момента до сворачивания окна, а мне ведь надо чтобы в свернутом окне нажималась горячая клавиша - как сделать?
    и огромное спасибо за помощь!
     
    Добавлено:
    если нужен интервал минута, то Sleep (60000)?
    или полчаса?
     
    Добавлено:
    ynbIpb

    Цитата:
    про свёрнутое окно есть в шапке  

    прочитал, но не знаю как это все соединить в скрипт?
     
    Добавлено:
    т.е. нужно чтобы, допустим, в свернутом блокноте непрерывно, через каждые 2 мин печаталась буква А

    Всего записей: 317 | Зарегистр. 03-09-2010 | Отправлено: 20:06 16-02-2012
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не.. я ошибся. Там речь шла о неактивном окне.
    В общем нельзя так делать.
    Используй виртуальную машину.
     
    Я смотрю у тебя нет желания учиться, тогда тебе в раздел "сделайте всё за меня"
    http://autoit-script.ru/index.php/board,8.0.html

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 23:43 16-02-2012 | Исправлено: ynbIpb, 23:45 16-02-2012
    BuZzOFF89



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Глупость конечно...
    Как мне тынуть (ControlClick) на Button ну или Edit, если у окошка нету Title?
    Ссылка на этот файл => http://rghost.ru/36562112

    Всего записей: 410 | Зарегистр. 02-07-2010 | Отправлено: 12:31 17-02-2012
    ynbIpb



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

    Код:
    $hKeygenWin = WinGetHandle ("[CLASS:#32770]", "Adobe After Effects CS5")
    If $hKeygenWin = "" Then Exit ; если нет такого окна, то выходим
    ControlClick ($hKeygenWin, "", "Button3")


    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 13:40 17-02-2012
       

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