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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 4)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Открыть новую тему     Написать ответ в эту тему

gyra

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

 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
  • Справки
  • Инструменты
  • Ресурсы, посвящённые AutoIt
  • Полезные советы новичкам и не только
  • Готовые решения
  • Версии для устаревших Windows
  • Скрипт раскраски кода AutoIt для публикации в форумах
     


     
    За шапкой следит ViSiToR / AZJIO  

  • Всего записей: 7932 | Зарегистр. 18-02-2006 | Отправлено: 10:49 23-01-2020 | Исправлено: Egor2020, 14:02 22-03-2021
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, на вкладке браузера в полях ввода провожу команды Send("^a")
    Send("^c") Send("^v") Send("^w") и иногда все работает, потом меняю что то в коде (незначительное) и клавиши перестают нажиматься - вместо команды  Send("^a") просто вводит a, вместо команды  Send("^v") просто вводит v и тд., как заставить сочетания работать? Необходимо в одном поле выделить и скопировать число, потом вставить его в другое поле
     
    P.S. Оказалось дело в раскладке, на русской раскладке клавиши ^a не работают, КАК сделать так, чтобы все работало независимо от раскладки??

    Всего записей: 1524 | Зарегистр. 07-08-2005 | Отправлено: 11:53 13-05-2024 | Исправлено: BOBAT, 12:52 13-05-2024
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    На русском форуме не смотрели? Там это обсуждалось и, возможно, где-то на видном месте в FAQ или в закреплённых темах висит.
     
    В крайнем случае можно по-простому: с помощью _WinAPI_GetKeyboardLayout получить значение раскладки вашего окна, если не равно дефолтной английской (0x0409), то сменить на неё с помощью _WinAPI_SetKeyboardLayout, а после ею же вернуть как было.

    Всего записей: 6516 | Зарегистр. 28-01-2008 | Отправлено: 21:47 13-05-2024
    BOBAT



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

    Цитата:
    P.S. Оказалось дело в раскладке, на русской раскладке клавиши ^a не работают, КАК сделать так, чтобы все работало независимо от раскладки??
     

    Нашёл простое решение: ВМЕСТО Send("^c") и Send("^v") ИСПОЛЬЗУЕМ  Send("^{INSERT}");копируем и Send("+{INSERT}");вставляем, работает НЕЗАВИСИМО от раскладки

    Всего записей: 1524 | Зарегистр. 07-08-2005 | Отправлено: 11:25 15-05-2024
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можете подсказать, в папке картинки jpg, с $pic = Random(1, 500, 1) получаю случайный номер картинки ($pic), как теперь из этой же папки скопировать картинку с этим номером ($pic) на уровень вверх или в любое другое место?
    РЕШЕНО: "&$pic&".jpg

    Всего записей: 1524 | Зарегистр. 07-08-2005 | Отправлено: 13:45 16-05-2024 | Исправлено: BOBAT, 15:36 17-05-2024
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Код сгенерировал ИИ, но он не работал, я его немного переделал, всё равно не работает, что нужно изменить?

    Цитата:
     
    ; Считываем картинку wallpaperGrop.png, размер 12х12 из текущего каталога
    Local $image = "wallpaperGrop.png"
     
    ; Определяем цвет пикселя в центре картинки
    Local $color = PixelGetColor(6, 6, $image)
     
    ; Проверяем яркость цвета (если значение больше 0x808080 то цвет темный, иначе светлый)
    If $color > 0x808080 Then
        ; Тёмный цвет - выполняем определенное действие
        MsgBox(0, "Сообщение", "Темный цвет обнаружен!")
    Else
        ; Светлый цвет - выполняем другое действие
        MsgBox(0, "Сообщение", "Светлый цвет обнаружен!")
    EndIf
     

    Или как сделать так, чтобы считывалась картинка 12х12, и весь квадрат проверялся и определялся диапазон цвета или яркости, если светлый (ближе к белому), то одно действие, если тёмный - другое

    Всего записей: 1524 | Зарегистр. 07-08-2005 | Отправлено: 13:38 19-05-2024 | Исправлено: BOBAT, 13:39 19-05-2024
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Возможно, неверно сформулировали вопрос? PixelGetColor работает с окном.
    Посмотрите такой вариант.

    Всего записей: 6516 | Зарегистр. 28-01-2008 | Отправлено: 15:23 19-05-2024
    BOBAT



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

    Цитата:
    возможно, неверно сформулировали вопрос? PixelGetColor работает с окном.
    Посмотрите такой вариант.
    выдает
    Bitmap Pixel Color at [12, 12] is: 0x000000
    на почти белой картинке, а должен определять 0xF8F8F8, Тот код, написанный ИИ - все таки логически правильный, нужно его подправить, чтобы правильно определял яркость картинки и потом сравнивал цветом 0x808080 - это серый, а код на ЛЮБОЙ цвет, даже Чёрный выдаёт "Светлый цвет обнаружен!"
    Или как сделать так, чтобы считывалась картинка 12х12, и весь квадрат проверялся и определялся диапазон цвета или яркости, если светлый (ближе к белому), то одно действие, если тёмный - другое
     

    Всего записей: 1524 | Зарегистр. 07-08-2005 | Отправлено: 17:24 19-05-2024 | Исправлено: BOBAT, 17:38 19-05-2024
    Skif_off

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

    Цитата:
    а должен определять 0xF8F8F8

    Может, с альфа каналом как-то связано? А если предварительно сконвертировать в BMP?

    Цитата:
    Тот код, написанный ИИ - все таки логически правильный

    Безусловно правильный, только делает он не то, что вам надо: функция PixelGetColor работает с активным окном или с указанным окном, а вам нужно прочитать содержимое файла и смотреть в нём.
    Откройте ваш файл в какой-нибудь программе просмотра, переключите режим

    Код:
    Opt("MouseCoordMode", 2)

    и с помощью MouseGetPos получите координаты, тогда этот логически правильный код покажет цвет нужного пикселя.
     
    На оффоруме предлагают попробовать _GDIPlus_BitmapCreateFromFile() + _GDIPlus_BitmapGetPixel() (смотрел в приватном режиме и в истории не сохранился адрес, но там всё равно примера не было).

    Всего записей: 6516 | Зарегистр. 28-01-2008 | Отправлено: 18:10 19-05-2024
    BOBAT



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

    Цитата:
    А если предварительно сконвертировать в BMP?

    Поведение изменилось, теперь у него ЛЮБОЙ квадрат Тёмный (на png любой квадрат был Светлый)

    Всего записей: 1524 | Зарегистр. 07-08-2005 | Отправлено: 18:23 19-05-2024
    BOBAT



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

    Код:
     
    ; выделяем данные на странице размером в Одну строку
    Sleep(1088)
    Send("^{INSERT}") ; копируем данные
    $dand = ClipGet()
    FileWrite(@DesktopDir & "\записываем.txt",($dand)&@CRLF)
    Sleep(1088)
    ; и так несколько (может быть 20) раз
     

    Скопированные данные вставляются в две строки, проблема в том, что часть скопированных данных не записывается, то есть в txt файле пустая строка, что изменить, чтобы все файлы записывало? И можно ли сделать так, чтобы после записи стиралась ВТОРАЯ строка (данные с сайта о том, что текст скопирован с данного ресурса)

    Всего записей: 1524 | Зарегистр. 07-08-2005 | Отправлено: 08:35 20-05-2024
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 4)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru