Виктор Л.
Победившая ставка- Проекты 23
- Оценка -
- Рейтинг 1 275
Бюджет: 350 UAH Срок: 2 дня
Здравствуйте, Михаил.
Ради спортивного интереса хотелось бы попробовать реализовать проект. Если согласны, обращайтесь.
Ставки скрыты
Ставки пока отсутствуют
-
Сергей Назаренко 17 октября 2019"Должно работать в программе при условии что она будет в свернутом режиме."
Имеется в виду, что программа, которая генерирует клики мышкой должна быть свернута? Или что BlueStacks или программа в нем должна быть свернута, но клики мышки должны до нее долетать? -
Alex Sol 17 октября 2019окно BlueStacks будет показано на рабочем столе. свернуть окно и отсылать нужные координаты - это не получится
-
Игорь Ляльченко 17 октября 2019Вы бы чуть добавили категорий. Конкретно тыкать мышью по эмулятору другой ОС из хвостовой я не пробовал, но мне что то подсказывает что даже общестстемный тык может не пройти. Я б поспрашивал там где пишут под андроид конкретно. Это все ж их поле.
-
Михаил Царев
17 октября 2019
Не думаю что в этом есть проблема, я проверял через spy, дочернее окно игры сообщений не ловит, только сам эмулятор, думаю это решаемо, я бы и сам попробовал, но совершить клик через сообщения у меня никогда и нигде не получалось, видать чего-то не понимаю в тонкостях и последовательности отправки сообщений((
-
Сергей Назаренко 18 октября 2019А тыкать нужно именно в игру? Или в БлуСтекс? Потому как, тыкнуть в другое окно винды - это одно. А тыкать в окно внутри эмулятора - это немножко другое.
-
Сергей Назаренко 18 октября 2019А не проще ли написать приложение под Андроид, которое будет запускаться на том же БлуСтексе и тыкать "мышкой" (точнее пальцем) в окно игры?
-
Михаил Царев
18 октября 2019
возможно проще, но я умею писать только на c++, а платить гору денег за такую программу ради игры желания особого нет.
-
Олександр Вишняк 18 октября 2019Ну тогда вы ничего не получите. Вам нужен бот-автокликер, что равносильно читу. Читы стоят не дешево.
-
Олександр Вишняк 18 октября 2019Не, если вам надо просто прокликивать одну и ту же кнопку по какому-то простецкому алгоритму, 350 грн - это разумная цена. Если вам нужен пример автокликера и вам впадлу копаться в вопросе, хотя вы "знаете с++" - что ж, можно и проконсультировать. Тогда так и пишите - нужна консультация с примером.
-
Михаил Царев
18 октября 2019
мне не нужна консультация, я пытался выполнить клик повторяя сообщения из SPY, но увы клик не работает, нигде не получилось кликнуть, не только в BlueStacks, наверно чего-то не понимаю в смысле последовательности оконных сообщений. Вот и сделал заказ на функцию.
-
Олександр Вишняк 18 октября 2019Вытаскивать хендлы и эмилировать проклик элементов - несложно. Только вот еще надо знать куда кликать.
-
Сергей Назаренко 18 октября 2019Проблема не в том, сколько это стоит, проблема в том, что Заказчик хочет получить приложение, которое отправляет сообщение с кликом мышки не просто в другое окно, а внутрь виртуальной машины (которая использует механизмы виртуализации и напрямую с железом работает), да еще и так, чтобы эта виртуальная машина поняла, что нужно это сообщение переадресовать конкретному запущенному в ней приложению. Я не думаю, что разработчики БлуСтекса вообще предусматривали API для подобных штук. А без него - вряд ли что то вообще получится.
Т.е. стоимость данной задачи соответствует стоимости разработки своего БлуСтекса, только с соответствующим АПИ. Либо стоимости разработки дополнения к БлуСтексу (если такие вообще возможны).
Хотя, я могу и ошибаться. -
Михаил Царев
18 октября 2019
где написано что мне нужно какое-то приложение? мне нужна 1 функция и только, если вы не понимаете принцип работы окон виндовса как и не можете читать ТЗ то зачем писать ерунду, сообщения от виндовса проходят через главное окно программы, а она уже сама отправляет их дальше дочерним окнам если что.
-
Сергей Назаренко 18 октября 2019"сообщения от виндовса проходят через главное окно программы, а она уже сама отправляет их дальше дочерним окнам"
Ну да. Все, как Вы описали. Только с условием, что дочерние окна - это окна Виндовса, а не внутренняя кухня эмулятора. В окне БлуСтекса может быть просто "клиентская область" в которой отрисовывается все происходящее. И с точки зрения внешней Винды у него вообще может не быть дочерних окон.Кинуть клик в координаты экрана БлуСтекса - не проблема. Но кинуть клик так, чтобы БлюСтекс понял, что этот клик нужно направить в какое-то запущенное под ним приложение (не факт, что находящееся на фореграунде) - это скорее всего утопия.
Хотя - да! Я могу и ошибаться.
Удачи Вам в решении этой задачи.
-
Виктор Л. 18 октября 2019Только что попробовал программно отсылать клик в свернутый Paint. Как и ожидал, точка рисуется относительно ClientRect. Возможно стиля окна играют роль, хотя обработка сигналов от этого вроде не зависит.
C BlueStacks так же должно работать, главное правильный хендл найти/иметь.
-
Anton Kravtsov 18 октября 2019у вас же ранее был выполнен аналогичный проект для Dota2... то решение не заработало для BlueStacks, что ли?
-
Anton Kravtsov 18 октября 2019bool BlueStacksWindowClick( HWND hWnd, EButton btn, LONG x, LONG y );
x и у - это что за координаты должны быть?
-
Сергей Назаренко 18 октября 2019Если у Вас получится прокинуть клик в окно Raid shadow legends, запущенной в БлуСтексе, то что конкретно за координаты, думаю разницы нет - их можно уже потом пересчитывать как угодно.
Проблема, насколько я понял, в том, чтобы вообще достучаться "мышкой" до указанной игры. -
Anton Kravtsov 18 октября 2019Если вариант с SendMessage/PostMessage не работает в ваших условиях, попробуйте SendInput API (пример). Окно BlueStacks должно быть активным (в фокусе и на переднем плане), чтоб это заработало.
-
Виктор Л. 21 октября 2019Все на самом деле банально... главное раньше времени не паниковать))
Хотелось бы пополнить свои скромные знания/набраться вдохновения:
BlueStacks приложение на Windows. Допустим оно использует напрямую железо. Откуда железо знает, где находится курсор мыши в координатах рабочего стола, когда сам BlueStacks в оконном режиме? Как только мы "заходим" мышкой в окно приложения, Windows теряет контроль над происходящим, а приложение наооборот, полностью его заполучает? Черная дыра в Windows? С точки зрения архитектуры Windows было бы очень интересно посмотреть/либо разработать такое приложение.
На уровне драйверов можно много чего сделать (особенно на уровне ядра), но как только речь заходит о взаимодействии с пользователем, тут все обращаются к винде. Зачем писать для Windows и при этом всеми способами пытаться избегать ее API? Это как тренировать баскетбольную команду и выпустить играть ее на футбольное поле...
-
Сергей Назаренко 21 октября 2019Все классно. Но у Вас клики отправляются в БлуСтекс, а не в приложение в нем.
Попробуйте в БлуСтексе переключиться в ГуглПлей (например), и запустите свое приложение. Оно будет продолжать рисовать точки? Или начнет кликакть в ГуглПлее?
-
Виктор Л. 21 октября 2019Естественно она будет тыкать в ГуглПлее. В принципе как и требовалось от заказчика. Иначе я просто напросто не понял ТЗ.
Для вами представленной ситуации не буду утверждать, что все также банально решимо, возможно и вовсе нет. Но если вдруг у кого-то появится такая необходимость, я посоветую открыть два Блустекса параллельно)) Про истинную пользу такого приложения не хочу рассуждать, мне просто интересно было )
-
Alex Sol 22 октября 2019Неплохое решения использовать ADB
https://androidp1.ru/ispolzovanie-komandy-adb-shell-input-tap-i-shell-input-swipe/
-
Сергей Назаренко 22 октября 2019Решение не плохое, но оно мало чем отличается от найденного Виктором Либрехтом. Оно позволяет тыкать в любую область Андроида, но не позволяет тыкать в заданное неактивное окно внутри него.
-
Anton Kravtsov 22 октября 2019... не позволяет тыкать в заданное неактивное окно внутри него
По-моему, вы излишне усложнили задачу :)
Заказчику вроде бы это и не требовалось.
Пожелание вида
Должно работать в программе при условии что она будет в свернутом режиме
скорее всего, относилось к окну BlueStacks.
В глубинах Android'а я не разбираюсь, но, по-моему, там вообще нереально кликать в "неактивное окно".
-
Сергей Назаренко 22 октября 2019Если я некорректно интерпретировал текст задачи, то Заказчик мог бы об этом сообщить. Но он молчит. :(
-
Alex Sol 22 октября 2019неактивное окно емулятора или окно в Андроиде?
в неактивная область(окно, кнопки) как бы и не может принимать клик, на то она и не активная
Adb решения позволяет работать с андроидом когда окном емулятора неактивное
-
Виктор Л. 22 октября 2019Сергей, я ошибаюсь или у вас на самом деле повышенный интерес написать именно такую функцию, которая в окно в бэкграунде кликала бы? ;)
Хотя Антон прав, такой постановки задачи не было, но и мне теперь интересно, возможно ли это. Я уверен в своём решении, можно просто выбирать окна и переключать их в свернутом БлуСтексе, тут все просто (конечно надо заранее знать, сколько программ будут открыты, как смещаются табы во время активации другого окна и т.д.) . Вопрос следующий: что делает программа, когда переходит на задний план? Или вернее правильно будет спросить, что андроид делает с обычной аппликацией (не сервисом), когда она в бэкграунде? Не зная андроида, могу предположить, что ни одна (нормальная) игра не продолжает выполнять все те действия, что и в форграунде. Иначе после трёх-четырёх запущеных игрушек смартфон можно вместо грелки использовать. Да и, будь я разработчиком ОС, не позволял бы использовать к примеру ресурсы видеокарты, точно зная, что они не нужны приложению. Эмулятор вроде БлуСтекса вполне может вести себя по-другому, не различая между активным/неактивным приложением, но это под большим сомнением.
Поэтому, мне кажется это не только не возможно, но и бессмысленно тыкать в область, которая скорее всего не выполняет цикл обработки пользовательских команд.
-
Сергей Назаренко 22 октября 2019Я предполагаю, что тыканье мышкой в неактивную программу внутри эмулятора (любого, а не только БлуСтекса) - задача нерешаемая в принципе (если не говорить о написании своего эмулятора).
Но формулировка данной задачи мне показалось, указывает именно на такую необходимость.
"Написать функцию на c++/winapi для эмуляции клика мышкой в программе BlueStacks, клик естественно должен заставлять игру/приложение - выполнять действие.
...
Клик должен работать только над программой. Мои манипуляции мышью вне программы не должны ей мешать.
Должно работать в программе при условии что она будет в свернутом режиме.
...
"
Я почему-то прочитал "в программе BlueStacks" так, как будто программа - это запущенная внутри БлуСтекс программа, а не БлуСтекс - это программа.
Жаль, что Заказчик не развеял моего заблуждения. А то я, возможно, тоже поборолся бы за результат :)
-
Сергей Назаренко 22 октября 2019А насчет "Поэтому, мне кажется это не только не возможно, но и бессмысленно тыкать в область, которая скорее всего не выполняет цикл обработки пользовательских команд.", то тут, как Вы правильно заметили, все зависит от реализации. Ведь Windows позволяет тыкать мышкой (и слать другие сообщения) в неактивне окна? Что мешает это делать другим операционкам?
Актуальные фриланс-проекты в категории C и C++
Требуется разработать патч для драйвера видеокарты, расширяющий возможности управления графическим адаптером за счёт добавления дополнительных пользовательских настроек. Патч должен интегрироваться в существующую архитектуру драйвера без нарушения его основной функциональности и обеспечивать совместимость с поддерживаемыми версиями операционной системы. Основной целью является предоставление более гибкого доступа к параметрам, которые недоступны в стандартной панели управления драйвера, с возможностью их изменения через пользовательский интерфейс или программный API. Патч должен предусматривать модульную структуру, позволяющую в дальнейшем добавлять новые параметры без существенной переработки кода. Необходимо обеспечить корректную обработку ошибок, журналирование изменений, возможность отката настроек к значениям по умолчанию, а также сохранение совместимости с будущими обновлениями драйвера, насколько это возможно. Решение должно сопровождаться технической документацией с описанием архитектуры, реализованных возможностей, ограничений и рекомендаций по тестированию.
Автоматизация на сайте - echerha
Мы являемся крупной логистической компанией, которая имеет собственный экспорт. В нашем распоряжении большой автопарк, и мы постоянно отправляем собственные транспортные средства на экспорт в страны Европы.Описание Сайт: https://echerha.gov.ua/ На этом сайте мы ставим наши автомобили в электронную очередь для пересечения государственной границы. Во время регистрации необходимо ввести следующие данные: имя и фамилия водителя; номер заграничного паспорта; электронный адрес (email); номер телефона логиста для получения уведомлений; тип транспортного средства (грузовой); название производителя автомобиля; государственный номерной знак тягача; государственный номерной знак прицепа; номер таможенной декларации. Для каждого автомобиля заранее определен конкретный день и время пересечения границы. Например, автомобиль должен пройти пункт пропуска «Рава-Русская» в понедельник в 10:00.Наша проблема - Очередь на сайте https://echerha.gov.ua/ движется непредсказуемо. - Например, сегодня пятница, а автомобиль должен пересечь границу в понедельник в 10:00. - Мы не знаем, когда именно начнет продвигаться очередь. Это может произойти в пятницу вечером, в любое время в субботу или воскресенье, рано утром, днем или поздно вечером. - Когда очередь начинает двигаться, это сразу видно на сайте. Иногда всего за несколько минут она может продвинуться с пятницы до понедельника или даже до вторника. - Из-за этого логисты вынуждены постоянно контролировать мобильное приложение или вебсайт, чтобы не пропустить момент, когда очередь дойдет до нужной даты и времени. Если этот момент будет упущен, мы физически не успеваем поставить автомобиль в очередь на нужный временной слот.Задача - После внесения данных о автомобиле (например, в таблицу или другой интерфейс, в зависимости от реализации программиста) система должна автоматически отслеживать движение очереди. - Когда очередь дойдет до заранее определенных даты и времени, система должна автоматически заполнить необходимые данные и поставить автомобиль в очередь без участия логиста.
Ищу опытного разработчика TrinityCore 3.3.5a, который хорошо разбирается в устройстве ядра, Battleground-системе, C++, SQL и клиенте WoW 3.3.5. В проект уже интегрирован кастомный Battleground «Долина Рабства» (Slavery Valley), перенесённый с AzerothCore на TrinityCore. Основная часть работы уже выполнена, однако требуется довести его до уровня Blizzard.Что уже сделано TrinityCore 3.3.5a + Eluna. Полностью настроен сервер. Battleground интегрирован в ядро. Работает вход в BG. Работает клиентский UI (частично). Выполнен перенос большинства SQL и DBC. Собирается без ошибок.Что необходимо сделать Исправить оставшиеся баги Battleground. Довести механику до уровня официальных Battleground Blizzard. Исправить стартовую фазу матча. Реализовать корректные стартовые ворота/огненные стены. Исправить механику захвата точек. Исправить завершение матча. Проверить начисление очков и работу WorldState. Исправить оставшиеся проблемы C++ и SQL. Выполнить полный игровой тест.Требования Обязательный опыт: TrinityCore 3.3.5a; C++; SQL (MariaDB/MySQL); DBC; MPQ; Visual Studio; CMake; Git. Будет большим плюсом: AzerothCore; Eluna; опыт разработки Battleground; понимание клиентской части WoW 3.3.5a.Формат работы Работа поэтапная. После каждого этапа обязательное тестирование. Каждый этап принимается только после проверки в игре. Необходимы понятные отчёты по изменениям.В дальнейшем Это долгосрочный проект. После завершения Battleground планируется: перенос новых Battleground; перенос новых арен; новые расы; новые классы; новые игровые системы; дальнейшая разработка собственного сервера World of Warcraft 3.3.5a. Ищу разработчика, который уже работал с TrinityCore и сможет не просто писать код, а доводить систему до полностью рабочего состояния.нет сервер с 0 как я хочу Если ты ищешь разработчика не на один Battleground, а на создание сервера с нуля, то объявление должно выглядеть примерно так.Название проекта Разработка сервера World of Warcraft 3.3.5a с нуля (TrinityCore / C++ / SQL / Eluna)Описание проекта Ищу опытного разработчика TrinityCore 3.3.5a для долгосрочного сотрудничества. Нужен человек, который сможет с нуля разработать полностью готовый игровой сервер World of Warcraft 3.3.5a на базе TrinityCore с дальнейшим развитием проекта. Проект большой и рассчитан на несколько месяцев разработки.Основа проекта TrinityCore 3.3.5a. Максимально стабильная и близкая к Blizzard база. Eluna Lua Engine. MariaDB. Visual Studio + CMake. Git.Что планируется реализовать Полностью рабочий сервер 3.3.5a. Исправление ошибок ядра. Разработка новых игровых систем. Интеграция кастомных Battleground. Интеграция новых арен. Перенос полезных модулей с AzerothCore на TrinityCore. Разработка собственных модулей. Новые PvP и PvE системы. Новые игровые события. Балансировка классов. Дополнительные системы прогрессии. Улучшение производительности сервера.В будущем После завершения базовой части планируется: новые расы; новые классы; новые зоны; новые подземелья; новые рейды; новые Battleground; новые профессии; новые игровые механики; интеграция современных систем в клиент 3.3.5a.Требования к разработчику Обязательно: Отличное знание TrinityCore 3.3.5a. Уверенное знание C++. SQL (MariaDB/MySQL). Git. Visual Studio. CMake. Понимание архитектуры TrinityCore. Опыт работы с Battleground, PvP и игровыми механиками. Будет большим плюсом: Опыт работы с AzerothCore. Eluna Lua Engine. Работа с DBC и MPQ. Опыт создания собственных игровых систем.Формат работы Работа поэтапно. Каждая задача оформляется отдельным техническим заданием. После каждого этапа проводится обязательное тестирование. Работа принимается только после проверки непосредственно в игре. Нужен разработчик, который умеет доводить функционал до полностью рабочего состояния, а не только писать код
Создать совместимость между наземной станцией управления, системой автоматического старта (САС), радаром и самолетом.
