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

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

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли уговорить Au3Record.exe записывать с Opt('MouseCoordMode',2) ?
    Объясняю зачем это нужно: что бы работало одинаково с разным размером заголовка окна (Classic, XP Theme, 7-ка, юзерские настройки).


    И ещё вопрос:
    в связи с тем что делфи "не понимает" хоткеи - и + на checkbox-ах, как установить галку в checkbox ?
    Уникальное имя у checkbox-а отсутствует.
    Координаты постоянны.
     
    Думаю приблизительно так:
    Целиться в checkbox (цвет checkbox-а в delphi при mouseover меняется),
    анализировать цвет (опираясь на значение "HKCU\Control Panel\Colors\WindowText" ?)
    в чекбоксе и кликать/не кликать в зависимости от результатов ?
     
    Есть более изящные варианты ?

    Всего записей: 6519 | Зарегистр. 31-08-2008 | Отправлено: 11:14 16-01-2014 | Исправлено: ndch, 14:00 16-01-2014
    AZJIO



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

    Цитата:
    "HKCU\Control Panel\Colors\WindowText"
    Там значения не меняются от изменения цвета в GUI.
     

    Цитата:
    Координаты постоянны.
    В справке посмотри возможнсть вместа текста указать координаты и размер элемента.

    Код:
    ControlGetText("Калькулятор", "", "[CLASS:Button; X:54; Y:43; W:63; H:34]")

    Или выслать клик относительно окна.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 10:18 17-01-2014
    DragonSerW



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я очень слаб в программировании, поэтому прошу написать ответ на мой вопрос наиболее подробно.
    Как можно отправить Alt-В и Alt-У в окне http://i.imgur.com/JZkZcK0.png ?
    Программа - http://wincdemu.sysprogs.org/download/ .

    Всего записей: 274 | Зарегистр. 11-05-2007 | Отправлено: 15:50 17-01-2014
    ndch

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

    Код:
    ControlCommand ("[CLASS:xxx]", "", "[CLASS:xxx; INSTANCE:9]", "UnCheck", "")

    Спасибо за подсказку.

    Всего записей: 6519 | Зарегистр. 31-08-2008 | Отправлено: 16:08 17-01-2014 | Исправлено: ndch, 16:39 17-01-2014
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DragonSerW
    Send
    ControlSend
    Читайте в справке, там есть примерs.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 19:45 17-01-2014 | Исправлено: AZJIO, 19:46 17-01-2014
    DragonSerW



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO, добрый день. Вот пробую Send, не работает:

    Код:
    Run("notepad.exe")
    Global $Title='Безымянный — Блокнот'
     
    ; Вид - Строка состояния
    WinWaitActive($Title)
    Send("!в")
    Send("{с}")
     
    ; Формат - перенос по словам
    WinWaitActive($Title)
    Send("!м")
    Send("{п}")
    WinClose($Title)

     
    Версия этого моего скрипта для англоязычной Винды работает отлично:

    Код:
    Run("notepad.exe")
    Global $Title='Untitled - Notepad'
    ; View - Status Bar
    WinWaitActive($Title)
    Send("!v")
    Send("{ENTER}")
     
    ; Format - Word Wrap
    WinWaitActive($Title)
    Send("!o")
    Send("{w}")
    WinClose($Title)

    Всего записей: 274 | Зарегистр. 11-05-2007 | Отправлено: 17:47 19-01-2014 | Исправлено: DragonSerW, 17:58 19-01-2014
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DragonSerW
    С русской раскладкой проблема. Получите дескриптор окна, дескриптор элемента и выполните клик или ещё что там требуется. А высылать Send это для затравки, ненадёжная штука. Смотрите примеры в WinWait для получения дескриптора, ControlCommand для высылки команды. Ну и весь раздел. Там всё есть для вставки текста, чекбоксов, списков.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 23:31 19-01-2014
    Dimmak0001

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как отослать комбинацию клавиш ( CTRL+a ) опреденному окну
    Если отсылать одну клавишу - все ок!
        ControlSend( $hWnd, "", "", "{space}" )
     
    Но когда пытаюсь отослать комбинацию клавиш ( CTRL+a ), к примеру
        ControlSend( $hWnd, "", "", "^a" ) - не работает.
     
    Так работает, но не надежно...
        WinActivate( $hWnd )
        Send( "^a" )
     
     

    Всего записей: 36 | Зарегистр. 06-01-2012 | Отправлено: 01:10 20-01-2014
    AZJIO



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

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 01:43 20-01-2014
    Dimmak0001

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

    Цитата:
    Dimmak0001
    Читаем предыдущий пост

    Я читал предыдущий пост. При помощи ControlCommand можно ли отослать сочетание клавиш ( CTRL+anykey ) НЕАКТИВНОМУ окну?
    У меня получается отослать неактивному окну только одну клавишу:
    ControlSend( $hWnd, "", "", "{space}" )  
     
    Добавлено:
    Разобрался:
    Send( "{ctrldown}" )
        ControlSend( $hWnd, "", "", "t" )
    Send( "{ctrlup}" )

    Всего записей: 36 | Зарегистр. 06-01-2012 | Отправлено: 02:54 20-01-2014
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Dimmak0001
    Если у Windows в настройках стоит русская раскладка то в некоторых случаях эта комбинация не будет работать. Откуда вы знаете как интерпретирует клавишу интерфейс интерпретации, как англ. "A" или как русс. "Ф"? Если бы она всегда интерпретировала как англ. всегда, то второй вопрос, есть буквы которые подсвечиваются по Alt и выбор этой буквы вызывает выбор пункта меню, если интерпретация всегда по англ. то теоретически вы никогда не сможете выбрать пункт меню клавишами. Отсюда вывод если работает первый вариант, то есть проблема, если второй, то тоже проблема. Отсюда вывод, вы можете использовать Send только в особых конкретных случаях, и иногда только для конкретной сборке OC, в которой однозначно известен умолчальный язык системы, например при автоматизации установки.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 23:01 20-01-2014 | Исправлено: AZJIO, 23:02 20-01-2014
    Dimmak0001

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

    Цитата:
    Если у Windows в настройках стоит русская раскладка то в некоторых случаях эта комбинация не будет работать.

    Для этой цели есть специальный скрипт от Creator'a.

    Цитата:
    Отсюда вывод если работает первый вариант, то есть проблема, если второй, то тоже проблема.

    AZJIO, проблема мне хорошо известна... Каким образом ее решить?

    Всего записей: 36 | Зарегистр. 06-01-2012 | Отправлено: 19:09 21-01-2014
    AZJIO



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

    Цитата:
    Для этой цели есть специальный скрипт от Creator'a.  
    Вы на ходу переключите русский интерфейс программы на английский? Раскладка для Send не причём.
     

    Цитата:
    Каким образом ее решить?  
    Я только сообщил о проблеме, решение - индивидуально подойти к проблеме зная нюансы. Я не знаю какие у вас окна и что они требуют. По возможности не использовать Send и ControlSend. Если требуется "нажать", то ControlClick, если "вставить", то ControlSetText. Как то так.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 10:47 22-01-2014
    Dimmak0001

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

    Всего записей: 36 | Зарегистр. 06-01-2012 | Отправлено: 00:10 23-01-2014
    MagistrAnatol



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Народ, помогите нажать подпункт меню  
    $var = WinList()
    For $i = 1 to $var[0][0]
      If StringRegExp($var[$i][0], "(Teltonika)") Then
        $okno=$var[$i][0]
        MsgBox(0,"", $okno)
      EndIf
    Next
    WinMenuSelectItem( $okno,"Отчёты","Пройденный путь ежедневно" )
    и ничего не происходит.
    Сама програ написана на сишарпе  
    Через Autoit v3 Window Info получить ид не могу, выдается только ид главного окна
     
    Добавлено:
    Вообще задача:
    1 запустить приложение  - реализовал
    2 ввести логин/пароль - реализовал
    ну а дальше пока не выходит
    3 дождаться загрузки приложения  
    4 открыть отчет Пройденный путь ежедневно - ето подменю Отчёты
    5 установить диапазон дат
    6 нажать кнопку обновить  
    7 нажать кнопку печать
    8 нажать кнопку Печать в окне печати
     
    Добавлено:
    Да и, я скомпилирую скрипт в ехе и надо запускать из 3 параметрами коммандной строки -
    как в самим скрипте прочитать ети параметры?

    Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 14:37 30-01-2014
    ynbIpb



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

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 18:10 30-01-2014
    AZJIO



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

    Цитата:
    3 дождаться загрузки приложения
    WinWait - в справке готовый пример с запуском и ожиданием окна и возвращения дескритора с чем потом работать.

    Цитата:
    4 открыть отчет Пройденный путь ежедневно - ето подменю Отчёты
    WinMenuSelectItem - в примере всё есть.

    Цитата:
    5 установить диапазон дат  
    по идее заставить GUICtrlSetData работать с вставкой но не известно примет ли она дескриптор элемента. Иначе пробовать функции раздела  "ФУНКЦИИ/Окна/Управление элементами".
    И там же для всех остальных задач.

    Цитата:
    7 нажать кнопку печать  
    иногда можно не нажимать кнопку а отправить Ctrl+P, хотя Send не желателен.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 08:46 31-01-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Почему в Encoding UDF в функции _Encoding_KOI8To1251 первым идет

    Код:
    Case $iCode = 63
        $VarKOIArr[$i] = Chr(185)

    ?
    У меня в итоге все "?" превращаются в "№".
     
    Кто-нибудь использует AkelPad? Поделитесь, пожалуйста, изменениями в файле подсветки синтаксиса, если были.

    Всего записей: 6487 | Зарегистр. 28-01-2008 | Отправлено: 09:49 31-01-2014
    321new



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос к знатокам:
    Имеется програмка такого простенького кода, что дан ниже.
    Нужно, чтобы после нажатия на кнопочку (любую из имеющихся) в окне проги в строке "Процесс мониторинга:" значение менялось на правильное. Возможно такое реализовать?
     
    Код
     
     

    Всего записей: 452 | Зарегистр. 03-11-2011 | Отправлено: 14:08 01-02-2014 | Исправлено: 321new, 14:10 01-02-2014
    AZJIO



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

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 15:11 01-02-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