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

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

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Да кто его знает, что там и как. Найти работающий бот и разобрать на части) из чего он сделан.
    В принципе можно и на Autoit, но скрипт запускать на компе, а клиент в VM можь и сработает

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 18:20 31-08-2018
    NIKZZZZ



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

    Цитата:
    но я таки понимаю они поднаторели на отслеживании ботов

    Естественно, отследить бот достаточно просто, разницы, на чем он написан нет.
    Возможно, поможет, если в бот поставить случайные задержки перед выполнением команды, или как-то по другому сэмитировать "человека".
     
    BOBAT
    Лучше всего использовать вместо заголовка окна его хэндл, это решит много проблем.
    Пример

    Код:
    $iPID = Run('notepad.exe')
    ;Если pid не известен, можно вместо него указать имя процесса
    ;$iPID="notepad.exe"
    While 1
        ;ждем появления окна
      $hWnd = _ProcessGetWindow($iPID)
        If $hWnd Then ExitLoop
      Sleep(100)
    WEnd
    ;посылаем в окно текст, в место заголовка указываем хэндл окна
    ControlSetText($hWnd, '', '[CLASS:Edit; INSTANCE:1]', 'Привет')
    Sleep(5000)
    ProcessClose($iPID)
     
     
    Func _ProcessGetWindow($iPID, $sClass = "")
        Local $aWinList = ($sClass = '') ? WinList() : WinList($sClass)
        Local $iRet
        If IsString($iPID) Then $iPID = ProcessExists($iPID)
        For $i = 1 To UBound($aWinList) - 1
            If WinGetProcess($aWinList[$i][1]) = $iPID Then
                $iRet = $aWinList[$i][1] ;WinHandle
                Return $iRet
            EndIf
        Next
        Return SetError(1, 0, 0)
    EndFunc   ;==>_ProcessGetWindow
     
       
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:45 31-08-2018
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В "AnVir Task Manager" есть отложенная загрузка.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 20:03 31-08-2018
    Fom64

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

    Цитата:
    Естественно, отследить бот достаточно просто, разницы, на чем он написан нет.  
    Возможно, поможет, если в бот поставить случайные задержки перед выполнением команды, или как-то по другому сэмитировать "человека".

    Ну кагбе да, только вот "имитация" может не сработать. Тупо хук на снятие скриншота сторонним софтом иль самой виндой (ниразу не видел, но подозреваю, что можно) и завершение клиента.
    Хэндл окна у меня в скрипте реализовано, но BOBAT чота темнит, что ему надо. Можь там и окна не нужно отлавливать) все решить проще и элегантней)

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 20:03 31-08-2018
    BOBAT



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

    Цитата:
    Хэндл окна у меня в скрипте реализовано, но BOBAT чота темнит, что ему надо. Можь там и окна не нужно отлавливать) все решить проще и элегантней)

    Что Вы привязались к этому Блокноту?? Блокнот здесь ПРОСТО для примера, в реальном скрипте я отслеживаю и управляю совершенно другими окнами, заголовки и видимый текст которого я знаю точно, и тот цикл, который мне помог написать NIKZZZZ уже оформлен в exe и отрабатывает на 100% совершенно в другом приложении
     

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 14:43 01-09-2018 | Исправлено: BOBAT, 17:21 01-09-2018
    BOBAT



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

    Цитата:
    Так я спецом, ещё не посылал никаких команд клиенту и не делал никаких обращений, просто скомпилил пустой файл. Он отлавливает именно какие-то метки, самого AutoIt в Памяти.

    А если попробовать сначала скрипт запустить, а потом уже саму игру - она сконнектится? Или даже сам скрипт пусть запускает игру

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 06:38 02-09-2018
    AZJIO



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

    Цитата:
    Или даже сам скрипт пусть запускает игру
    а как игре сказать что она запущена скриптом и если бы не скрипт тебе бы не жить? И ещё сказать что нет денег на её покупку и необходимо сжалиться.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 10:08 02-09-2018 | Исправлено: AZJIO, 10:10 02-09-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Лучше подскажите, можно ли как то определить в отдельном окне любой программы установлен ли чекбокс, если установлен, например, пропускать операцию установки галочки в чекбокс, если не установлен - устанавливать (MouseClick или по Class Instance)
    И как закрыть программу в трее. И можно ли ожидать, например, появление элемента в окне, если титл его не меняется, и если элемент появился, произвести действие (например, нажать), если не появился пока окно активно, ничего не делать и продолжать выполнение скрипта

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 13:31 02-09-2018 | Исправлено: BOBAT, 13:57 02-09-2018
    AZJIO



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

    Цитата:
    установки галочки в чекбокс
    ControlCommand
    "IsChecked", "" Возвращает 1, если установлена галочка, иначе 0
    "Check", "" Устанавливает галочку в Checkbox или радиокнопку
    "UnCheck", "" Убирает галочку из Checkbox или радиокнопки

    Цитата:
     появление элемента в окне
    во всех оконных функциях есть пустая строка указывающая текст окна. Можно проверять окно указав нужный текст который должен появиться. Каждый элемент в окне является тоже окном как бы, имеет свой дескриптор, можно попробовать ожидать как бы окно в качестве заголовка указать текст кнопки (не пробовал).
     
    Кстати в справке поиск работает, на вкладке "Поиск".

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 07:02 03-09-2018
    BOBAT



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

    Цитата:
    Кстати в справке поиск работает, на вкладке "Поиск".

    Спасибо

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 09:23 03-09-2018
    RW4PIR



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ребят помогите подключится по modbus TCP и забрать допустим 0й бит регистр 0. или регистр целиком. набросайте пожалуйста пример.
     
    нужно сделать что то ти по скады системы для нескольких переменных

    Всего записей: 563 | Зарегистр. 16-03-2009 | Отправлено: 10:51 03-09-2018
    Fom64

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RW4PIR
    На autoit.de тема была

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 12:22 03-09-2018 | Исправлено: Fom64, 12:24 03-09-2018
    RW4PIR



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

    Всего записей: 563 | Зарегистр. 16-03-2009 | Отправлено: 12:45 03-09-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста, Когда Фотошоп запускается, на заставке у него (отслеживаю Autoit Info) Title=Adobe Photoshop CC 2018 Class=PSFloatC, после того, как он загрузился, класс меняется на Photoshop, я ставлю ожидание окна по классу Photoshop,  
     

    Код:
    Run("C:\Program Files\Adobe\Adobe Photoshop CC 2018\Photoshop.exe", "", @SW_MAXIMIZE)
     
    $hWnd = WinWait("[CLASS:Photoshop]", "", 6)
    If Not $hWnd Then
        MsgBox(4096, 'Сообщение', 'Adobe Photoshop не найден, завершаем работу скрипта')
        Exit
    EndIf
    Beep(200, 1000)

    чтобы когда окно загрузилось, продолжилось выполнение кода (Beep(200, 1000)), но он Beep-кает сразу на заставке, то есть на Class=PSFloatC, как мне сделать, чтобы код продолжался после полного открытия программы?

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 12:45 03-09-2018 | Исправлено: BOBAT, 13:03 03-09-2018
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Можно дождаться с помощью  ControlGetHandle($hWnd,'','Edit1') появления конкретного элемента окна (Edit1 только для примера).

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:26 03-09-2018
    RW4PIR



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    у меня есть бат фаил.
    в нем что то вроде этого:
    DEL /F /S /Q "%SYSTEMDRIVE%\Users\%UserName%\AppData\Local\Temp"
     
    как это реализовать на AutoIt по нажатию кнопки?

    Всего записей: 563 | Зарегистр. 16-03-2009 | Отправлено: 13:32 03-09-2018 | Исправлено: RW4PIR, 13:32 03-09-2018
    Fom64

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    между Exit и EndIf  вставь

    Код:
    Else
       Do
       $hControl = ControlGetHandle($hWnd ,"", "[CLASS:OWL.ApplicationBar; INSTANCE:1]")
       Sleep (500)
       Until $hControl <> ""
       Beep(200, 1000)

    свой Beep - убери и проверь фотошоп верхний заголовок соответствует иль нет, а то у меня фтшоп не 2018
    RW4PIR

    Цитата:
    DEL /F /S /Q "%SYSTEMDRIVE%\Users\%UserName%\AppData\Local\Temp"  
     как это реализовать на AutoIt по нажатию кнопки?

    Зачем AutoIt использовать по столь ничтожному поводу?) Тотал Коммандер есть? сделай там кнопку  
    команда:
    Код:
    cmd /c title Очистка временной папки &cd/d %temp%&rd/s/q %temp% 2>nul &cd/d %tmp%&rd/s/q %tmp% 2>nul

    ну и иконку какуюнидь

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 14:41 03-09-2018 | Исправлено: Fom64, 14:46 03-09-2018
    BOBAT



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

    Цитата:
    BOBAT
    между Exit и EndIf  вставь
     

    Ваш код срабатывает на Заставке почему то 3 раза, потом Фотошоп загружается и всё в порядке. Просто раньше у меня Фотошоп ещё не загрузился полностью, а код далее уже выполнялся, сейчас код выполняется после загрузки Фотошопа. Как это работает? Объясните
     
    Добавлено:
    RW4PIR
    Ответил в Личный ящик

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 15:22 03-09-2018
    Fom64

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

    Цитата:
    Ваш код срабатывает на Заставке почему то 3 раза

    В смысле? 3 раза бипкает штоль?

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 15:32 03-09-2018
    BOBAT



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

    Цитата:
    Ваш код срабатывает на Заставке почему то 3 раза
     
    В смысле? 3 раза бипкает штоль?
     

    После Вашего кода я конечно поставил Бип, чтобы контролировать его, а после EndIF у меня стоит свой Бип, и он срабатывает, когда окно загрузилось, а раньше он срабатывал на заставке, то есть практически сразу. А как ещё узнать, в каком месте кода что то не работает??

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 15:52 03-09-2018 | Исправлено: BOBAT, 15:53 03-09-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