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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Просьба помочь со скриптом для ввода пароля в окне браузера, состоящего из 5 цифр. Можно с интервалом, например, в одну секунду. Подробности за решеткой: #

    Всего записей: 3070 | Зарегистр. 08-01-2005 | Отправлено: 12:32 14-10-2014 | Исправлено: xMesSir, 15:30 14-10-2014
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    xMesSir,
    Если еще актуально, то попробуйте сделать примерно так. Подробнее...

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 09:41 21-10-2014 | Исправлено: madmasles, 09:45 21-10-2014
    xMesSir



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

    Всего записей: 3070 | Зарегистр. 08-01-2005 | Отправлено: 09:02 22-10-2014
    Lovec



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите как решить такой трабл.
    Проблема при отправке текста контролу через ControlSend. Отправляю смешанный текст - русский, англ., качвычки так же присутствуют.
     
    На примере из справки.
    Запускаем блокнот
    Run('notepad.exe')
     
    Находим дискриптор его окна.
    $hWnd = WinWait("[CLASS:Notepad]", "", 5)
     
    Высылаем в блокнот текст
    ControlSend($hWnd, "", "Edit1", "Эта строка выслана в элемент Edit")
     
    Если в блокноте на момент посыла текста будет стоять русская раскладка, то в его окно прилетит такое:
    ЭЭта строка выслана в элемент УвшеЭ
    (в данном примере строка была еще и в кавычках, которые заменились на Э)
     
    Как побороть?
     
    Добавлено:
    И второй вопрос.
    Я знаю как в IE с помощью _IEGetObjById найти тег, если у него есть id. По имени так же понятно.
    А если у элемента только class определен? Причем этот класс единственный на странице, т.е. практически как id.
     
    Можно ли как то организовать поиск по имени класса?

    Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 18:58 25-10-2014 | Исправлено: Lovec, 19:02 25-10-2014
    thejustsoul



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

    Цитата:
    Как побороть?  

    Попробуйте такой код:

    Код:
    Run('notepad.exe')
     
    $hWnd = WinWait("[CLASS:Notepad]", "", 5)
     
    $def_lang = GetCurrentLayout($hWnd) ; запоминаем текущую раскладку
    if GetDefaultLayout() = 1 Then
        SetCurrentLayout('0419', $hWnd) ; если раскладка по умолчанию русская, то ставим текущую русскую
    Else
        SetCurrentLayout('0409', $hWnd) ; иначе - ставим английскую
    EndIf
     
    ControlSend($hWnd, "", "Edit1", "Эта строка выслана в элемент Edit")
     
    SetCurrentLayout($def_lang, $hWnd) ; возвращаем раскладку до махинаций
     
    Func GetCurrentLayout($hWnd)
        Local $Ret = DllCall('user32.dll', 'long', 'GetWindowThreadProcessId', 'hwnd', $hWnd, 'ptr', 0)
        $Ret = DllCall('user32.dll', 'long', 'GetKeyboardLayout', 'long', $Ret[0])
        Return Hex($Ret[0], 4)
    EndFunc  
     
    Func GetDefaultLayout()
        If @KBLayout = 00000419 Or @KBLayout = 0419 Then Return 1
        If @KBLayout = 00000409 Or @KBLayout = 0409 Or @KBLayout = 0809  Or @KBLayout = 00000809 Then Return 0
    EndFunc
       
    Func SetCurrentLayout($sLayout, $hWnd)
        Local $Ret = DllCall('user32.dll', 'long', 'LoadKeyboardLayout', 'str', StringFormat('%08s', StringStripWS($sLayout, 8)), 'int', 0)
        DllCall('user32.dll', 'ptr', 'SendMessage', 'hwnd', $hWnd, 'int', 0x0050, 'int', 1, 'int', $Ret[0])
    EndFunc

     
    Взято отсюда
    Еще можно так (заменит текст в Edit1):

    Код:
    Run('notepad.exe')
     
    ; Устанавливает текст в элемент, заменяя текущий
    ControlSetText("[CLASS:Notepad]", "", "Edit1", "Новый текст уставленный в элемент Edit")

     
    P.S. Подскажите как покрасить код AutoIt наименьшими усилиями (в BBCode), а то утилита из шапки не работает у меня, хотя раньше работала..
     
    upd: добавил подсветку кода
     

    Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 20:45 25-10-2014 | Исправлено: thejustsoul, 10:19 29-10-2014
    Lovec



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    thejustsoul
    Спасибо за идеи, все работает.
     
    По поводу раскраски, посмотрите еще утилиту от AZJIO, которую он выкладывает здесь.
    Найдете в конце страницы под названием "Converter_AU3_to_BBcode".
    Хотя на моей Windows 7 x64 и утилита от CreatoR из шапки отлично работает.

    Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 02:28 26-10-2014
    thejustsoul



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

    Цитата:
    По поводу раскраски

    Странно, но у меня и эта не заработала, верней запустилась, но не конвертирует никак.

    Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 10:13 26-10-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Утилиты от AZJIO и CreatoR требуют установленного AutoIt/SciTE. Если пользуетесь AkelPad, то есть скрипт CodePoster.js
    (ссылки не вставляет, естественно). Примеры есть в теме (поиск по моему нику, например): если нет ссылок, только раскрашенный текст - это оно. Только у меня модифицированный файл подсветки, от оригинальной будет отличаться.

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 10:16 26-10-2014 | Исправлено: Skif_off, 10:17 26-10-2014
    thejustsoul



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

    Цитата:
    требуют установленного AutoIt/SciTE.

    Все установлено..

    Цитата:
    Если пользуетесь AkelPad, то есть скрипт CodePoster.js  

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

    Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 10:35 26-10-2014
    Skif_off

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

    Цитата:
    А что у вас модифицировано в нем, убрана приписка чем подсвечено?

    Это можно убрать, добавив в команду ключ  -Info=false.
     
    Но я не об этом, сам файл au3.coder изменён и тема своя, хотя и на основе <Default>, то, что постил здесь, существенно отличается от дефолтных.

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 12:36 26-10-2014 | Исправлено: Skif_off, 12:37 26-10-2014
    yozhic



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

    Цитата:
    au3.coder

    Поделитесь, пожалуйста. Если кроме полного списка ЮДФ ещё что-то добавилось...

    Всего записей: 2979 | Зарегистр. 20-03-2008 | Отправлено: 13:37 26-10-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yozhic
    Фигасе, скачан 41 раз Не ожидал.
     
    +директивы, СОМ, правила для макросов и переменных изменены, в секции Blocks чуть побольше вариантов. За функции не скажу, просто не помню, точил под 3.3.12.0, директивы 3.3.8.1/3.3.12.0. Ну, то, что закомментировано можно вообще убрать.
    Сделано под AkelPad 4.9.х, для предыдущих версий: заменить всё в секции QuotesRE на это (4.8.х будет работать точно).
     
    Up: обновил ссылку.

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 14:06 26-10-2014 | Исправлено: Skif_off, 15:58 11-03-2015
    Lovec



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пробую использовать _WinAPI_SetKeyboardLayout( $hWnd, 0x0419 ) для переключения в окне раскладки на русский. Так вот переключается она нормально только когда это окно имеет фокус! Но мне то надо в неактивном окне. Ведь указан же хэндел!
    Это только у меня такая засада?
     
    AutoIt v 3.3.12.0

    Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 19:40 26-10-2014
    Spy686



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет.
    Вот задача:
     
    Есть открытых 10 профилей Mozilla.
    Идентификатора нет.
    Как их все развернуть?
     
    Есть команда  

    Код:
       Opt("WinTitleMatchMode", 2)  
       WinSetState ('Mozilla Firefox', '', @SW_MAXIMIZE)

     
    Но данный код разворачивает только активное окно.
    Как можно настроить код так что бы он автоматом проходил по всем окнам и разворачивал?

    Всего записей: 193 | Зарегистр. 17-12-2010 | Отправлено: 21:08 26-10-2014 | Исправлено: Spy686, 21:08 26-10-2014
    Skif_off

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

    Код:
    $List = WinList('[CLASS:MozillaWindowClass]')
    For $i = 1 To $List[0][0]
        If $List[$i][0] <> '' And BitAND(WinGetState($List[$i][1]), 16) Then
            WinSetState($List[$i][1], '', @SW_RESTORE)
        EndIf
    Next

    ? Не проверял.
     
    Добавлено:
    Или $List[$i][0] <> '' And вообще не надо (просто вытащил кусок из скрипта).

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 21:22 26-10-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    thejustsoul
    Дефолтный au3.coder не очень хорошо подсвечивает переменные и макросы (см. мой пример чуть выше)

    Код:
    Лучше заменить
     
    ;401=1+16+128+256
    401    0    ${VAR}    0    "@"    ""    ""    ""    ""
     
    на
     
    ;272=16+256
    272    0    ${DEL1}    0    "@"    ""    ""    ""    ""
     
    а строку
     
    401    0    ${VAR}    0    "$"    ""    ""    ""    ""
     
    закомментировать и в QuotesRE добавить
    0    "\$[a-z0-9_]++"    "\0=(0,${VAR},0)"

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 23:23 28-10-2014 | Исправлено: Skif_off, 23:25 28-10-2014
    thejustsoul



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

    Цитата:
    Дефолтный au3.coder не очень хорошо подсвечивает переменные и макросы

    Отсюда поставил ваш, еще тогда, он нормальный ведь?)

    Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 09:17 29-10-2014 | Исправлено: thejustsoul, 09:17 29-10-2014
    Skif_off

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

    Цитата:
    он нормальный ведь?

    Я старался
    Выглядит как дефолтная, вероятно, не обновился кэш. Установлен в Windows или Program Files? Самое простое - удалить файл \AkelFiles\Plugs\Coder\cache и запустить AkelPad с правами администратора или вообще его вырубить "Главное меню -> Настройки -> Плагины... -> Coder::Settings (двойной клик по пункту) -> Без кэша (выпадающий список внизу слева)".

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 10:03 29-10-2014
    thejustsoul



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Кеш сразу удалил, AkelPad 4.9.0 Portable с офф.сайта)
    Видимо код подсвечивал со старой подсветкой (дефолтной), обновил тот пост, теперь нормально?
    P.S. спасибо за исправления подсветки
     

    Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 10:18 29-10-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    thejustsoul
    Ага, теперь как и должно быть - переменные и макросы захватываются целиком.

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 10:49 29-10-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