Задать вопрос
Ответы пользователя по тегу Автоматизация
  • Можно ли написать автокликер для работы в неактивном окне?

    @rPman
    Много раз отвечал на подобные вопросы следующее:
    1. использовать виртуализацию, внутри виртуальной машины любые правила
    бесплатно, заметные затраты ресурсов (от 10% до 30% производительности), нет адекватной поддержки 3d видео в госте (для linux хоста есть исключение, можно внутрь пробросить целый gpu)
    с легальной точки зрения в виртуалке разрешено запускать только ревизии enterprise windows (дорогие) но технически почти никаких ограничений не происходит даже с домашними

    2. использовать windows server и каскадирование подключений rdp (при использовании одного, если отключиться, то кнопки нажимать внутри не получится, но если одна сессия будет исключительно ради открытия внутри себя подключения rdp, то внутри оно будет открытым а это первое может быть отключено.
    с лицензионной точки зрения это дико дорогой способ, зато полностью независимые сеансы, нет использования виртуализации, но и не совсем полноценная 3d (спец софт, который затачивают на использование неактивной видеокарты будет работать, но те кто по умолчанию пытаются работать с активной видеокартой, те обломятся)
    p.s. для старых версий до 22-го года win10 есть была rdpwrap которая легально включала множество терминальных сессий для десктопных windows, но майкрософту это не понравилось и с ней боролись и победили

    3a. использовать linux и для каждого приложения запускать свою сессию, на выбор либо использовать xvfb (отдельная сессия) или надстройки поверх него (проверьте x2go, вроде должно работать если держать подключение)
    недостаток - нетривиальная настройка

    3b. использовать linux и штатный его механизм разделения сеансов (утилита loginctl, не работает с wayland), позволяет настроить полностью независимые рабочие места, если на каждое подключить видеокарту, мышку, клавиатуру (достаточно видеокарты, управлять по vnc), с помощью xephyr можно обойти требование видеокарта на одно рабочее место.
    достоинства - полноценные рабочие места, очень легко настраивать (xephyr все еще сложно)

    p.s. все это работает, потому что X сервер изначально может работать в нескольких экземплярах, его даже проще самому запускать (а не мучиться с настройкой lightdm и аналогов)

    p.p.s. с неплохими шансами windows приложения будут работать в linux, есть wine есть его форки типа proton от стим... рассмотри эти варианты так как это самое бесплатное что есть и не нужно тратить ресурсы как с виртуализацией.

    4. использовать ibik aster (я их уже столько рекламирую, они мне наверное должны уже зп платить ;) ) это то же самое что 3b в linux но для десктопных ревизий windows, по цене годовой подписки рабочего места в один обед.
    достоинства - полноценные рабочие места, может работать на одной видеокарте (сколько подключить мониторов/заглушек сможешь), к сожалению мне не удалось тогда настроить автологин всех рабочих мест, но он точно должен быть
    Ответ написан
    Комментировать
  • Как купить один и тот же ограниченный товар с разных браузеров одновременно в один и тот же момент времени?

    @rPman
    Два подхода.
    • Первый - попроще, но не эффективно. Симуляция действий пользователя, буквально, нажатие кнопок мыши,.. для этого подходит autoit, и удаленный но сохраненный на их форуме aurecord, который буквально создаст скрипт автонажатия кнопок по твоим действиям... останется его почистить (удалить лишние движения перед нужным действием и после), привести к удобному виду (например последовательность можно завернуть в цикл, а данные для следующего шага брать из файла, который открывать так же как пользователь, брать следующую строчку/запись и т.п.), такие действия способен сделать человек только отдаленно знакомый с программированием.

      Что бы реализовать одновременную работу в нескольких браузерах, тут либо открыть эти браузеры одновременно (разные профили, например firefox -p имя_профиля) и изменить их размер что бы они были видны одновременно, соответственно скрипт делать таким что бы он рулил сразу несколькими браузерами, либо запускать каждый экземпляр в виртуалке

      Подход очень не устойчив к изменениям в интерфейсе, да банальаня капча, которой раньше не было, уже потребует усложнять скрипт
    • Второй - посложнее, но эффективнее. Провести реверсинженеринг всего что происходит в веб приложении изнутри (зачастую достаточно того что видно в консоли разработчика, но есть способы у веб приложения вставлять тут 'палки в колеса) и симулировать сетевые запросы из своего приложения или даже простым curl. Приложения с простым функционалом бывает можно обмануть чуть ли не вручную, посмотреть запрос, что отсылает кнопка на сайте в консоли разработчика, скопировать от туда эту команду и просто вызвать ее в нужный момент повторно, подменив в поля, которые меняются с каждым разом (например информация для этого запроса уже есть на странице, ее можно заранее вытащить, подправить команду, и в нужный момент её просто запустить)

    У первого подхода меньше требований к знаниям и опыту исполнителя, этот подход обычно более устойчив к простым защитам от автоматизаций (ну да, капчу все равно как то придется отгадывать), типа изменение html кода, но он заметно медленней работает и требует большое количество ресурсов (памяти), особенно это заметно когда ботов нужно сотни запускать.

    Второй подход очень эффективный, простые запросы симулировать можно тысячами на слабом железе, но поднимает требования к разработчику очень высоко... реверсинженеринг это не простая задача.

    Для разгадывания капчи в автоматическом режиме есть куча сервисов, очень дешевых, какраз для того чтобы использовать их в своих скриптах.

    p.s. очень странно, что подобные подходы (кто первый нажал тот и выиграл) к выбору клиента, все еще используются, ясно ведь что по честному человек тут уже давно вне конкуренции. Честнее было бы просто устраивать лотерею.
    Ответ написан
    2 комментария
  • Как отправить игре клики мыши и клавиатуры в неактивном режиме?

    @rPman
    Попробуй запустить игру под linux, там симуляция нажатий из linux утилит отрабатывает в играх wine/proton как нативная, мало того, может повезти и для нескольких окон не потребуется отключать античит (для каждой игры свой wine preffix), так как игра буквально в песочнице запускается
    Ответ написан
    Комментировать
  • Существует ли автокликер для RDP?

    @rPman
    Можно обмануть rdp сессию, что бы она считала что она не свернута, запустив ее в другой rdp сессии (можно к localhost подключиться), и вот уже эту вторую - отключать или сворачивать.
    Ответ написан
  • Какой локальный сервис/программа для сбора данных (текстовых) от пользователя?

    @rPman
    Свой веб сервер.

    Современные 'программисты' забыли, что html очень простой и удобный инструмент разметки форм, а приложение на php из 10 строчек позволит собрать данные в одном месте, даже без sql базы данных.
    90% работы - реализация аутентификации пользователей, и если к примеру вам хватит встроенной в вебсервер basic auth, то и подавно все просто.
    Ответ написан
    Комментировать
  • Как написать скрипт, который автоматически будет нажимать на кнопку покупки на сайте?

    @rPman
    Если
    У сайта есть апи

    Значит нужно прочитать документацию к нему с примерами или обратиться за помощью к его разработчику/владельцу.

    Стандартов на это нет, а значит и что то конкретное мало что сказать можно.
    Ответ написан
    Комментировать
  • Какие пакеты лучше использовать для написания программы?

    @rPman
    Управление удаленным браузером - selenium или самому использовать механим управления браузером по сети (у firefox это marionette, у хромиум кажется через --remote-debugging-port свой, собственно драйвера selemium их и используют, унифицируя)
    Ответ написан
  • Как заставить паралельно работать две разные вкладки google chrome?

    @rPman
    Как их можно заставить работать одновременно
    это фича браузера chromium, блокирует работу javascript фоновых окон либо замедляет их стократно. Чтобы заставить их работать в фоне, разработчик веб приложения должен использовать специальную технологии web workers.

    У firefox такой проблемы я не наблюдал, скрипты продолжали работать в свернутом браузере как ожидается.

    Единственный способ решить эту проблему универсально - это обмануть браузер чтобы он считало активным сразу несколько окон. Сделать это можно:
    - с помощью сервера терминалов, т.е. версия windows должна быть серверной либо на старых ревизиях win10 и до старых win7 - утилита rdpwrap).
    Можно запустить терминал под своим пользователем windows, и в каждом запускать браузер или любое другое приложение, которое ожидает быть в фокусе. Для работы приложения нужно будет держать открытыми сессии терминалов.
    Соответственно они будут продолжать работать, даже если их открыть в другой сессии терминалов (каскадно) и затем эту первую закрыть
    - использовать ibik aster для рабочих ревизий windows (включая самые свежие 11), позволяет создавать несколько рабочих терминалов (настоящих, не виртуальных как терминалы rdp) но для каждого потребуется свой монитор (можно обмануть с помощью заглушек в разъемы видеокарты и подключаться к терминалу с помощью локально запущенного vnc в каждом)
    Ответ написан
    4 комментария
  • Какой сервер выбрать для headless Chrome?

    @rPman
    chromium отъедает больше 500мб на типовую страницу, формально половина может уехать в своп и там и остаться, но при условии что инстанс браузера не перезапускается, но тогда нужно выбирать kvm vps-ки или выделенный сервер.

    я делал приложение на java (на самом деле пофиг на каком языке) в котором использовались компоненты WebEngine - от webkit, каждый инстанс потреблял порядка 150мб и работало неплохо, но формально это отдельный браузер и его useragent нестандартный... по уму это меняется. Что интересно, если подобрать версию WebKit по старее, то потребление оперативной памяти можно значительно сократить до считанных десятков мегабайт.

    Еще вариант, при использовании mono (как альтернатива .net framework), при использовании компоненты WebBrowser используется IE (не edge!) а в linux - firefox, как минимум это было 10 лет назад это работало на очень мелкой vps-ке.
    upd. облом, майкрософт и это сломало,
    spoiler
    кто-нибудь, пожалуйста, накажите эту компанию, куда не глянь, что не задень, все где она прошлась, сломано, искорежено, куплено и заброшено
    , поэтому тут тоже придется WebKit поключать
    Ответ написан
    Комментировать
  • Как автоматизировать получение URL файла, который браузер скачивает при задании моего URL?

    @rPman
    Для не программистов (или с минимальными знаниями) есть инструмент autoit, вместе с ним 7 лет назад шла мегаутилита au3record которая преобразовывала движения пользователя в программу, потом ее удалили из-за того что антивирусы считают эту программу вирусом

    смысл в том что полученную программу на auto script можно отредактировать, удалить лишние движения и добавить пару строк цикла чтобы зациклить действия или тупо вручную продублировать, вставив один и тот же код несколько раз.

    затем подготовить исходные данные (например список url) в каком-нибудь редакторе (например блокнот) и первыми действиями удалять первую строку в буфер (ctrl+x) и вставлять ее в браузер, в программе тогда достаточно будет вручную указать количество повторений цикла равное количеству строк.

    интервалы времени между повторениями взять с запасом
    Ответ написан
    Комментировать
  • Как выключить компьютер при пропадании подключения?

    @rPman
    Выключить компьютер можно командой:
    * windows - shutdown /s /t 0 (где 0 это время, через которое произойдет выключение, за это время можно отменить)
    * linux - shutdown -h 0

    Определить что связь с сервером прекратилась ... для этого нужно определить что именно это значит, нужно понимать что связь может оборваться по обычным причинам, например провайдер раз в сутки может обрывать все текущие подключения (помним знаменитый мем 'ни единого разрыва') и обычно программы автоматически восстанавливают соединения.

    Можно собирать статистику ping за какой то интервал времени, и если сервер не отвечает, можно считать что связь оборвалась. Готовую программу на выбранном языке тебе может кто то напишет,
    spoiler
    советую для windows не выбирать cmd/bat, да и на powershell это будет многословно. Если что в любой windows старше winxp в поставке идет c#/js#/vbs# компилятор, а если копнуть дальше то windows scripting host (это javascript/vbasic) и того со времен win95, поэтому лучше выбирать эти полноценные языки.
    Ответ написан
    Комментировать
  • Шаблонный код: Чем можно удобно генерировать код для автоматизации сборки по шаблону?

    @rPman
    Я использовал php для генерации кода, в т.ч. других языков программирования.
    Это очень простой, легко читаемый, поддерживаемый редакторами (раскраска, автодополнение,...) изначально создаваемый именно как генератор (текстов и html) на основе программируемого шаблона. Поддерживается всеми популярными ос и платформами (различия минимальны, в задачах шаблонизации не существенные)
    Ответ написан
    3 комментария
  • Как сделать так, чтобы автоматически выводилось изображение на экран по расписанию?

    @rPman
    bat-ник, запускается по расписанию в планировщике задач (чекбоксик прав администратора, чтобы он мог убивать процесс, так же включить чекбоксик интерактивный, чтобы процесс запускался под текущим пользователем) и состоит из двух строчек:
    taskkill /IM:имя_файла_просмотрщика_pdf.exe
    start "" /max "c:\путь_до_просморщика_pdf\имя_файла_просмотрщика_pdf.exe" "путь_до_файла_pdf.pdf"


    Если компьютер может использоваться другими пользователями (например это сервер терминалов и народ подключается по rdp) то завести специально для этой задачи отдельного пользователя windows, и прописать его в taskkill так /fi "username eq имя_пользователя_windows"

    p.s. при подключении к машине по rdp на сервере открывается новая сессия, не затрагивающая ту, что видна на подключенном мониторе (эта сессия зовется консоль), а на рабочих станциях эта консоль будет заблокирована.
    Для разболокировки консоли можно найти утилиты, гуглить remote unlock windows console
    Ответ написан
    Комментировать
  • Как автоматизировать обновление презентации power point из excel файла?

    @rPman
    с помощью скриптов Visual Basic Application (к сожалению макросы в PowerPaint недоступны и пример когда не сгенерируешь)
    первый же пример из гугла
    Ответ написан
    Комментировать
  • Возможно ли сделать скраппинг информации с сайта, на котором требуется авторизация с помощью расширения браузера (chrome)?

    @rPman
    Интерфейс расширений браузера это тоже html со своим dom, а значит с ним можно взаимодействовать.

    Уязвимые расширения используют не свою отдельную страницу с адресом chrome-extension:// а просто добавляют dom элементы на страницу, с такими тем более просто.

    средства автоматизации браузеров позволяют работать в т.ч. с расширениями, например selenium, гуглить extension automation selenium
    Ответ написан
    Комментировать
  • Как сделать автозапуск плейлиста в Spotify при включении ПК?

    @rPman
    Универсально автоматизировать нажатие кнопок можно с помощью autoit, скрипты примитивные, сложнее определить координаты в числах, куда нажимать а так скрипт будет из одной строчки: MouseClick(x,y) или несколько, если надо по менюшкам погулять (скорее всего между кликами добавить sleep)

    где то гуляла програмка для записи действий пользователя в виде программы для autoit но я ее найти никак что то не могу, очень было удобно, получить готовый код, подправить его если нужны циклы, тайминги слипами добавить...
    p.s. поройся в этой теме, там вроде нашли номер старой версии, в которой au3record еще шла в поставке
    Ответ написан
    Комментировать
  • Где найти бота/софт для NFT покупок на Binance?

    @rPman
    Уверен что разработка бота для торовли на площадке, где нет поддержки api (у бинанса нет), будет стоить 100$?
    это значит работать бот будет в браузере на площадке, где сегдня форма одна, завтра другая, после завтра вылетает выпадающее окошко поверх формы...

    p.s. Это игра в наперстки на площадке наперсточника, с завязанными глазами, когда наперсточник сначала забирает у тебя все деньги из кармана, а потом понемногу тебе их возвращает.. но не все
    Ответ написан
    Комментировать
  • Как автоматически создать нескольких изображений, наложив одно изображение на другие и трансформировав форму этого изображения в процессе?

    @rPman
    100% готовая библиотека есть, но не нагуглилась, так как задача не такая уж и сложная, ведь все можно сделать заранее.

    Первоначальное фото с маской делать нужно не с белым квадратом малевича, а специально подготовленным изображением на основе шахматной доски с мелкими цветными квадратами (одинаковые цвета не должны быть рядом, просто регулярный ресунок), чтобы слишком большие складки не помешали определить, какой это квадрат

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

    Ищи библиотеки, с эффектом warping/morphing, те что есть работают по ключевым точкам, как раз те что рассчитываешь по центрам квадратом в моем описании выше.
    Ответ написан
    1 комментарий
  • Как можно заработать запустив на своем сервере какие-нибудь скрипты?

    @rPman
    Даю идею для бизнеса ;)

    Парси алиэкспресс товары, продавай базу или услуги на ее основе (если я верно понимаю, там есть механизмы когда ты получаешь копеечку от продавца за то что ссылку кому то на них дал, цены при этом на товар привязываются)

    Как вариант сделай адекватный поиск, aliexpress на столько неадекватно ищет товары что считай что поиска у них нет (полагаю специально чтобы покупатели на худшие предложения тоже находились). Таких сервисов не много и они обычно ограничены определенными категориями товаров

    Чтобы это сделать, парси их базу, это не просто, так как они сопротивляются, к примеру их страничка в html занимает 600кб, и на ее анализе пасуют почти все существующие инструменты (из тысячи страниц с десяток могут выдавать странный результат) кроме наверное самого браузера. Структура меняется, ответы от сервера меняются если он заподозрит в сканировании и т.п.
    Ответ написан
    Комментировать
  • Как заархивировать папку по частям и отправить на почту(разную)?

    @rPman
    Отправка архивов на почту - худшая форма передачи данных, неужели нельзя по другому?

    Автоматизировать - значит написать приложение, вариантов 100500, бери делай, это не сложно
    Вот к примеру как отправить почту с вложениями с помощью PowerShell
    Ответ написан
    Комментировать