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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SharkyEXE
    У меня WindowsXP пока.
    А зачем Sleep(1000) ?, зачем ControlFocus
     

    Код:
    Func AU3ExecuteScript($hWnd, $inx)
        $res = ControlCommand($hWnd, '', 'Button' & $inx, 'IsChecked')
        If Not @error And Not $res Then ; Если нет ошибки предыдущей функции и нет галочки, то
            ControlCommand($hWnd, '', 'Button' & $inx, 'Check') ; то ставим галочку
        EndIf
    EndFunc

     

    Цитата:
    А можно , пожалуйста, Вам пример , который у Вас 100% работает?  

    Идеальное это протестированное под конкретную задачу. Нужно знать всё тех-задание чтобы сделать идеально и учесть нюансы. Некоторые вещи могут работать сразу иногда важно проверить на случаи всяких торможений слабого компа. Это может усложнить скрипт и это делают когда разрабатывают на публику, а для себя можно упрощенным вариантом который работает здесь и сейчас. В общем нет идеального, есть идеальное как логическое решение, а впрактическом идеальное это когда 100 (или 10000) человек тебе отписали что на их компе работает.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 10:37 21-12-2017 | Исправлено: AZJIO, 10:46 21-12-2017
    SharkyEXE

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
     
    Большое Вам спасибо.
     
    Sleep , ControFocus - для меня это наиболее вероятно , что сработает , а так Вы больше знаете , чем я.
     
    А что по поводу дескриптора , как Вы его получаете?
     
    Вы же указали , что некорректно "Настроить кнопк" в качестве дескриптора окна , а как правильно прописать в коде ниже
     
    AU3ExecuteScript("Настроить кнопк","2")
     
    Поймите правильно , хочется один раз и на всю жизнь выяснить и больше к этому вопросу не возвращаться

    Всего записей: 354 | Зарегистр. 25-01-2009 | Отправлено: 10:48 21-12-2017 | Исправлено: SharkyEXE, 10:57 21-12-2017
    AZJIO



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

    Цитата:
    А что по поводу дескриптора , как Вы его получаете?  

    Для окна WinGetHandle, для элемента ControlGetHandle. Но так как многие (WinWait) функции его возвращают, то можно и без WinGetHandle.
     

    Цитата:
    Вы же указали , что некорректно "Настроить кнопк" в качестве дескриптора окна
    Корректно, это было кратковременная забывчивость, ввиду того что я всегда использую дескриптор. Я думал это текст в окне, который указывается во втором параметре. Но с учётом что используется в виде заголовка, то это тоже верно.
     
     
    Добавлено:
    Кстати, а зачем проверять есть галочка или нет, когда можно просто применить сразу нужный вариант. Это же не переключает, а приводит к нужному.

    Код:
    Func AU3ExecuteScript($hWnd, $inx)
        ControlCommand($hWnd, '', 'Button' & $inx, 'Check') ; то ставим галочку
    EndFunc

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 10:58 21-12-2017
    SharkyEXE

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
     
    Понятно.
     
    А как тогда по Вашему коду
     

    Код:
     
    Func AU3ExecuteScript($hWnd, $inx)
        ControlCommand($hWnd, '', 'Button' & $inx, 'Check') ; то ставим галочку
    EndFunc
     

    снять галочку?
     
    У меня же в основном снимаются галочки...

    Всего записей: 354 | Зарегистр. 25-01-2009 | Отправлено: 13:22 21-12-2017
    AZJIO



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

    Цитата:
    снять галочку?  

    UnCheck

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 13:53 21-12-2017
    SharkyEXE

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

    Код:
     
    Func AU3ExecuteScript($hWnd, $inx)
        ControlCommand($hWnd, '', 'Button' & $inx, 'UnCheck') ; то снимаем галочку
    EndFunc
     

     
    Правильно?

    Всего записей: 354 | Зарегистр. 25-01-2009 | Отправлено: 14:00 21-12-2017
    AZJIO



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

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 14:12 21-12-2017
    SharkyEXE

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
     
    А как бы Вы красиво сделали - если требуется - ставим галочку , если требуется - снимаем галочку в этом коде
     

    Код:
     
    AU3ExecuteScript("Настроить кнопк","2")
     
    Func AU3ExecuteScript($hWnd, $inx)
        ControlFocus ($hWnd, '', '[CLASS:Button; INSTANCE: ' & $inx & ']' )
        ; Проверяем статус галки : установлена ( 1 ) / не установлена ( 0 )
        ; Если 1, то логическое True для логической проверки "If Then", иначе 0, что является логическим False для логической проверки "If Then"
        If ControlCommand($hWnd, '', 'Button' & $inx, 'IsChecked') Then
            ControlClick($hWnd, '', 'Button' & $inx)
            Sleep(1000)
        EndIf
    EndFunc
     

     
    Пример:
    1) AU3ExecuteScript("Настроить кнопк","2") - галочку надо снять
    2) AU3ExecuteScript("Настроить кнопк","3") - галочку надо установить

    Всего записей: 354 | Зарегистр. 25-01-2009 | Отправлено: 14:29 21-12-2017
    Pahuchiy1

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

    Всего записей: 168 | Зарегистр. 11-01-2015 | Отправлено: 20:17 18-01-2018 | Исправлено: Pahuchiy1, 20:25 18-01-2018
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто нибудь пробовал автоматизировать процесс создания панели инструментов на панели задач Windows 7-10?
    Что-то не получается.

    Код:
    $sClassWnd = 'ReBarWindow32'
    ControlClick('[CLASS:' & $sClassWnd & ']', '', '[CLASS:MSTaskListWClass; INSTANCE:0]', "secondary", 1) ; клик правой
    Exit
     
    $hWnd = WinWait("[CLASS:ReBarWindow32]", "", 1)
    ; $hWnd = WinWait("[CLASS:MSTaskListWClass]", "", 1)
    ; $hWnd = WinWait('Работающие приложения', '', 1)

    If Not $hWnd Then
        MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
        Exit
    EndIf

     
    ; Выбирает пункт "Создать панель инструментов..."
    WinMenuSelectItem($hWnd, '', '&Панели', 'Создать панель инструментов...')

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 16:51 04-02-2018 | Исправлено: AZJIO, 16:51 04-02-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Все мы знаем что есть #Region - #EndRegion и с чем едят, а как правильно, в контектсе, перевести на русский "regions"? Секции? Разделы? На autoit-script.ru вроде как-то попадался первый вариант...

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 11:52 14-02-2018
    timsky



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

    Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 19:54 14-02-2018
    AZJIO



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

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

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Спасибо, не подумал, что есть аналоги. Как-то всё выглядит по своему логично, в контексте... У меня чаще вглядит скорее как секции/разделы, типа такого.
    Наверное, оставлю этот вопрос, раз программистам вообще фича известна, пусть решает кто-нибудь другой

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 20:38 16-02-2018 | Исправлено: Skif_off, 20:38 16-02-2018
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    А где ты переводишь?

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 14:37 18-02-2018
    Claus_Trafoby



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

    Всего записей: 320 | Зарегистр. 21-03-2003 | Отправлено: 07:30 26-03-2018
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Claus_Trafoby
    Если известен PID запущенного процесса, можно с помощью WinGetProcess получить PID процесса, которому принадлежит окно с ошибкой, ну и проверить равны ли они.  

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

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

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 17:29 28-03-2018
    Bios834

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

    Всего записей: 13 | Зарегистр. 28-03-2018 | Отправлено: 06:22 29-03-2018
    Skif_off

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

    Цитата:
    Возможно ли написать GUI Progress Bar для aria2c.exe

    Возможно, например, без батников и прочего. Файл скачивается рядом со скриптом, aria2c.exe лежит в Tools.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 18:06 29-03-2018 | Исправлено: Skif_off, 18:09 29-03-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