Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!

Написать функцию на c++/winapi для эмуляции клика мышкой в программе.

350 UAH

Отзыв заказчика о сотрудничестве с Виктором Л.

Качество
Профессионализм
Стоимость
Контактность
Сроки

Все сделано как требовалось, спасибо

Отзыв фрилансера о сотрудничестве с Михаилом Царевым

Оплата
Постановка задачи
Четкость требований
Контактность

Устроило все: интересный проект, чёткая задача, быстрая оплата.
Я остался доволен и могу порекомендовать заказчика!

  1. 1275    23  1
    Победившая ставка2 дня350 UAH

    Здравствуйте, Михаил.
    Ради спортивного интереса хотелось бы попробовать реализовать проект. Если согласны, обращайтесь.

  2. Еще 3 ставки скрыты
  • Alex Sol
    17 октября 2019, 23:03 |

    "в свернутом режиме." - в таком варианте вряд-ли получиться

  • Михаил Царев Future-SEO
    17 октября 2019, 23:21 |

    Жаль, но не страшно

  • Владимир Борда
    18 октября 2019, 6:11 |

    Почему.. Клик прекрасно пройдет.

    Посмотрите программу Кибор.


  • Сергей Назаренко
    17 октября 2019, 23:18 |

    "Должно работать в программе при условии что она будет в свернутом режиме."

    Имеется в виду, что программа, которая генерирует клики мышкой должна быть свернута? Или что BlueStacks или программа в нем должна быть свернута, но клики мышки должны до нее долетать?

  • Михаил Царев Future-SEO
    17 октября 2019, 23:22 |

    БлуСтакс в свёрнутом, но напомню, это желательно но не обязательно

  • Alex Sol
    17 октября 2019, 23:27 |

    окно BlueStacks будет показано на рабочем столе. свернуть окно и отсылать нужные координаты - это не получится

  • Alex Sol
    17 октября 2019, 23:32 |

    - какая игра? это важно, чтобы знать как отслеживать куда/когда кликать 

  • Михаил Царев Future-SEO
    17 октября 2019, 23:34 |

    Raid shadow legends, 

  • Игорь Ляльченко
    17 октября 2019, 23:40 |

    Вы бы чуть добавили категорий. Конкретно тыкать мышью по эмулятору другой ОС из хвостовой я не пробовал, но мне что то подсказывает что даже общестстемный тык может не пройти. Я б поспрашивал там где пишут под андроид конкретно. Это все ж их поле.

  • Михаил Царев Future-SEO
    17 октября 2019, 23:52 |

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

  • Сергей Назаренко
    18 октября 2019, 0:57 |

    А тыкать нужно именно в игру? Или в БлуСтекс? Потому как, тыкнуть в другое окно винды - это одно. А тыкать в окно внутри эмулятора - это немножко другое.

  • Михаил Царев Future-SEO
    18 октября 2019, 7:12 |

    В игру.

  • Сергей Назаренко
    18 октября 2019, 9:11 |

    А не проще ли написать приложение под Андроид, которое будет запускаться на том же БлуСтексе и тыкать "мышкой" (точнее пальцем) в окно игры?

  • Михаил Царев Future-SEO
    18 октября 2019, 9:19 |

    возможно проще, но я умею писать только на c++, а платить гору денег за такую программу ради игры желания особого нет.

  • Профиль удален
    18 октября 2019, 10:12 |

    Ну тогда вы ничего не получите. Вам нужен бот-автокликер, что равносильно читу. Читы стоят не дешево.

  • Михаил Царев Future-SEO
    18 октября 2019, 10:14 |

    функция для эмуляции клика в окне программы это чит? идите проспитесь

  • Профиль удален
    18 октября 2019, 10:15 |

    Ботоводство это тоже чит, с добрым утром.

  • Михаил Царев Future-SEO
    18 октября 2019, 10:16 |

    я не прошу писать никакого бота, просто 1 функция и все.

  • Профиль удален
    18 октября 2019, 10:25 |

    Не, если вам надо просто прокликивать одну и ту же кнопку по какому-то простецкому алгоритму, 350 грн - это разумная цена. Если вам нужен пример автокликера и вам впадлу копаться в вопросе, хотя вы "знаете с++" - что ж, можно и проконсультировать. Тогда так и пишите - нужна консультация с примером.

  • Михаил Царев Future-SEO
    18 октября 2019, 10:35 |

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

  • Профиль удален
    18 октября 2019, 10:15 |

    Вытаскивать хендлы и эмилировать проклик элементов - несложно. Только вот еще надо знать куда кликать.

  • Михаил Царев Future-SEO
    18 октября 2019, 10:17 |

    по координатам кликать, и вас с добрым утром

  • Сергей Назаренко
    18 октября 2019, 10:19 |

    Проблема не в том, сколько это стоит, проблема в том, что Заказчик хочет получить приложение, которое отправляет сообщение с кликом мышки не просто в другое окно, а внутрь виртуальной машины (которая использует механизмы виртуализации и напрямую с железом работает), да еще и так, чтобы эта виртуальная машина поняла, что нужно это сообщение переадресовать конкретному запущенному в ней приложению. Я не думаю, что разработчики БлуСтекса вообще предусматривали API для подобных штук. А без него - вряд ли что то вообще получится.

    Т.е. стоимость данной задачи соответствует стоимости разработки своего БлуСтекса, только с соответствующим АПИ. Либо стоимости разработки дополнения к БлуСтексу (если такие вообще возможны).

    Хотя, я могу и ошибаться.

  • Михаил Царев Future-SEO
    18 октября 2019, 10:23 |

    где написано что мне нужно какое-то приложение? мне нужна 1 функция и только, если вы не понимаете принцип работы окон виндовса как и не можете читать ТЗ  то зачем писать ерунду, сообщения от виндовса проходят через главное окно программы, а она уже сама отправляет их дальше дочерним окнам если что.

  • Сергей Назаренко
    18 октября 2019, 10:40 |

    "сообщения от виндовса проходят через главное окно программы, а она уже сама отправляет их дальше дочерним окнам"
    Ну да. Все, как Вы описали. Только с условием, что дочерние окна - это окна Виндовса, а не внутренняя кухня эмулятора. В окне БлуСтекса может быть просто "клиентская область" в которой отрисовывается все происходящее. И с точки зрения внешней Винды у него вообще может не быть дочерних окон.

    Кинуть клик в координаты экрана БлуСтекса - не проблема. Но кинуть клик так, чтобы БлюСтекс понял, что этот клик нужно направить в какое-то запущенное под ним приложение (не факт, что находящееся на фореграунде) - это скорее всего утопия.


    Хотя - да! Я могу и ошибаться.

    Удачи Вам в решении этой задачи.

  • Виктор Л.
    18 октября 2019, 2:16 |

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

    C BlueStacks так же должно работать, главное правильный хендл найти/иметь.

  • Профиль удален
    18 октября 2019, 9:51 |

    у вас же ранее был выполнен аналогичный проект для Dota2... то решение не заработало для BlueStacks, что ли?

  • Михаил Царев Future-SEO
    18 октября 2019, 9:53 |

    там был общий клик, а мне нужен клик именно в конкретной программе

  • Профиль удален
    18 октября 2019, 10:26 |
    bool BlueStacksWindowClick( HWND hWnd, EButton btn, LONG x, LONG y );

    x и у - это что за координаты должны быть?

  • Михаил Царев Future-SEO
    18 октября 2019, 10:28 |

    точка клика по иксу и игрику, 

  • Сергей Назаренко
    18 октября 2019, 10:44 |

    Если у Вас получится прокинуть клик в окно Raid shadow legends, запущенной в БлуСтексе, то что конкретно за координаты, думаю разницы нет - их можно уже потом пересчитывать как угодно.
    Проблема, насколько я понял, в том, чтобы вообще достучаться "мышкой" до указанной игры.

  • Профиль удален
    18 октября 2019, 10:47 |

    Если вариант с SendMessage/PostMessage не работает в ваших условиях, попробуйте SendInput API (пример). Окно BlueStacks должно быть активным (в фокусе и на переднем плане), чтоб это заработало.

  • Виктор Л.
    21 октября 2019, 3:55 |

    Все на самом деле банально... главное раньше времени не паниковать))

    Хотелось бы пополнить свои скромные знания/набраться вдохновения:

    BlueStacks приложение на Windows. Допустим оно использует напрямую железо. Откуда железо знает, где находится курсор мыши в координатах рабочего стола, когда сам BlueStacks в оконном режиме? Как только мы "заходим" мышкой в окно приложения, Windows теряет контроль над происходящим, а приложение наооборот, полностью его заполучает? Черная дыра в Windows? С точки зрения архитектуры Windows было бы очень интересно посмотреть/либо разработать такое приложение.

    На уровне драйверов можно много чего сделать (особенно на уровне ядра), но как только речь заходит о взаимодействии с пользователем, тут все обращаются к винде. Зачем писать для Windows и при этом всеми способами пытаться избегать ее API? Это как тренировать баскетбольную команду и выпустить играть ее на футбольное поле...

     

    image


  • Сергей Назаренко
    21 октября 2019, 4:03 |

    Все классно. Но у Вас клики отправляются в БлуСтекс, а не в приложение в нем.

    Попробуйте в БлуСтексе переключиться в ГуглПлей (например), и запустите свое приложение. Оно будет продолжать рисовать точки? Или начнет кликакть в ГуглПлее?

  • Виктор Л.
    21 октября 2019, 4:14 |

    Естественно она будет тыкать в ГуглПлее. В принципе как и требовалось от заказчика. Иначе я просто напросто не понял ТЗ. 

    Для вами представленной ситуации не буду утверждать, что все также банально решимо, возможно и вовсе нет. Но если вдруг у кого-то появится такая необходимость, я посоветую открыть два Блустекса параллельно)) Про истинную пользу такого приложения не хочу рассуждать, мне просто интересно было )

  • Alex Sol
    22 октября 2019, 1:50 |

    Неплохое решения использовать ADB

    https://androidp1.ru/ispolzovanie-komandy-adb-shell-input-tap-i-shell-input-swipe/

  • Сергей Назаренко
    22 октября 2019, 10:34 |

    Решение не плохое, но оно мало чем отличается от найденного Виктором Либрехтом. Оно позволяет тыкать в любую область Андроида, но не позволяет тыкать в заданное неактивное окно внутри него.

  • Профиль удален
    22 октября 2019, 11:13 |

    ... не позволяет тыкать в заданное неактивное окно внутри него 

    По-моему, вы излишне усложнили задачу 🙂

    Заказчику вроде бы это и не требовалось.

    Пожелание вида

    Должно работать в программе при условии что она будет в свернутом режиме 

    скорее всего, относилось к окну BlueStacks.

    В глубинах Android'а я не разбираюсь, но, по-моему, там вообще нереально кликать в "неактивное окно".

  • Сергей Назаренко
    22 октября 2019, 11:16 |

    Если я некорректно интерпретировал текст задачи, то Заказчик мог бы об этом сообщить. Но он молчит. 😔

  • Alex Sol
    22 октября 2019, 12:11 |

    неактивное окно емулятора или окно в Андроиде?

    в неактивная область(окно, кнопки) как бы и не может принимать клик, на то она и не активная

    Adb решения позволяет работать с андроидом когда окном емулятора неактивное

  • Виктор Л.
    22 октября 2019, 12:06 |

    Сергей, я ошибаюсь или у вас на самом деле повышенный интерес написать именно такую функцию, которая в окно в бэкграунде кликала бы? 😉

    Хотя Антон прав, такой постановки задачи не было, но и мне теперь интересно, возможно ли это. Я уверен в своём решении, можно просто выбирать окна и переключать их в свернутом БлуСтексе, тут все просто (конечно надо заранее знать, сколько программ будут открыты, как смещаются табы во время активации другого окна и т.д.) . Вопрос следующий: что делает программа, когда переходит на задний план? Или вернее правильно будет спросить, что андроид делает с обычной аппликацией (не сервисом), когда она в бэкграунде? Не зная андроида, могу предположить, что ни одна (нормальная) игра не продолжает выполнять все те действия, что и в форграунде. Иначе после трёх-четырёх запущеных игрушек смартфон можно вместо грелки использовать. Да и, будь я разработчиком ОС, не позволял бы использовать к примеру ресурсы видеокарты, точно зная, что они не нужны приложению. Эмулятор вроде БлуСтекса вполне может вести себя по-другому, не различая между активным/неактивным приложением, но это под большим сомнением. 

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

  • Сергей Назаренко
    22 октября 2019, 13:24 |

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

    Но формулировка данной задачи мне показалось, указывает именно на такую необходимость.

    "Написать функцию на c++/winapi для эмуляции клика мышкой в программе BlueStacks, клик естественно должен заставлять игру/приложение  - выполнять действие.

    ...

    Клик должен работать только над программой. Мои манипуляции мышью вне программы не должны ей мешать.

    Должно работать в программе при условии что она будет в свернутом режиме.

    ...

    "

    Я почему-то прочитал "в программе BlueStacks" так, как будто программа - это запущенная внутри БлуСтекс программа, а не БлуСтекс - это программа.

    Жаль, что Заказчик не развеял моего заблуждения. А то я, возможно, тоже поборолся бы за результат 🙂

  • Сергей Назаренко
    22 октября 2019, 13:27 |

    А насчет "Поэтому, мне кажется это не только не возможно, но и бессмысленно тыкать в область, которая скорее всего не выполняет цикл обработки пользовательских команд.", то тут, как Вы правильно заметили, все зависит от реализации. Ведь Windows позволяет тыкать мышкой (и слать другие сообщения) в неактивне окна? Что мешает это делать другим операционкам?

Актуальные фриланс-проекты в категории C и C++

Реверс-инжиниринг консольных утилит для опроса контроллеров SSD (Flash ID)

1. Цель работы Выделение программного интерфейса (API) взаимодействия с контроллерами SSD/NVMe из предоставленного набора консольных утилит (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron и др.). Результатом должно стать рабочий код на языке C/C++ или точная…

C и C++Десктопные приложения ∙ 7 дней назад ∙ 6 ставок

Разработка карты семян Minecraft Java / просмотрщика семян для сайта

Разработка карты семян Minecraft Java / Seed Viewer для сайтаОписание проекта Необходимо разработать браузерный инструмент Minecraft Java Seed Map / Seed Viewer, который будет работать на нашем сайте и позволит пользователю ввести семя Minecraft Java Edition и просмотреть…

C и C++HTML и CSS верстка ∙ 7 дней 7 часов назад ∙ 15 ставок

Сравнительный анализ эффективности кастомного ПО (v2.2-field) и эталонного ПО (Meshtastic v2.x)

1000 UAH

Сравнительный анализ эффективности кастомного ПО (v2.2-field) и эталонного ПО (Meshtastic v2.x) на идентичной аппаратной платформе (ESP32 + SX1268, 2W) по критериям дальности, пропускной способности, стабильности линка и энергопотребления. Провести тесты с замерами с учетом…

C и C++C# ∙ 11 дней 14 часов назад ∙ 2 ставки

Заказчик
Михаил Царев Future-SEO
Украина Днепр  8  0
Проект опубликован
6 лет назад
278 просмотров