Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Post your project for free and start receiving proposals from freelancers within minutes after publication!

Write the function on c++/winapi to emulate the click by mouse in the program.

Translated8 USD

Client's review of cooperation with Viktor L.

Quality
Professionalism
Cost
Contactability
Deadlines

Everything was done as required, thank you.

Freelancer's review of cooperation with Mihail Tsarev

Payment
Task setting
Clarity of requirements
Contactability

It arranged everything: an interesting project, a clear task, fast payment.
I am happy and I can recommend the customer!

  1. 1275    23  1
    Winning proposal2 days8 USD

    Hello to Michael.
    For the sake of sports interest, I would like to try to implement the project. If you agree, call me.

  2. Another 3 proposals concealed
  • Alex Sol
    17 October 2019, 23:03 |

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

  • Mihail Tsarev Future-SEO
    17 October 2019, 23:21 |

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

  • Vladimir Borda
    18 October 2019, 6:11 |

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

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


  • Sergey Nazarenko
    17 October 2019, 23:18 |

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

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

  • Mihail Tsarev Future-SEO
    17 October 2019, 23:22 |

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

  • Alex Sol
    17 October 2019, 23:27 |

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

  • Alex Sol
    17 October 2019, 23:32 |

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

  • Mihail Tsarev Future-SEO
    17 October 2019, 23:34 |

    Raid shadow legends, 

  • Igor Lyalchenko
    17 October 2019, 23:40 |

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

  • Mihail Tsarev Future-SEO
    17 October 2019, 23:52 |

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

  • Sergey Nazarenko
    18 October 2019, 0:57 |

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

  • Mihail Tsarev Future-SEO
    18 October 2019, 7:12 |

    В игру.

  • Sergey Nazarenko
    18 October 2019, 9:11 |

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

  • Mihail Tsarev Future-SEO
    18 October 2019, 9:19 |

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

  • Profile deleted
    18 October 2019, 10:12 |

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

  • Mihail Tsarev Future-SEO
    18 October 2019, 10:14 |

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

  • Profile deleted
    18 October 2019, 10:15 |

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

  • Mihail Tsarev Future-SEO
    18 October 2019, 10:16 |

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

  • Profile deleted
    18 October 2019, 10:25 |

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

  • Mihail Tsarev Future-SEO
    18 October 2019, 10:35 |

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

  • Profile deleted
    18 October 2019, 10:15 |

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

  • Mihail Tsarev Future-SEO
    18 October 2019, 10:17 |

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

  • Sergey Nazarenko
    18 October 2019, 10:19 |

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

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

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

  • Mihail Tsarev Future-SEO
    18 October 2019, 10:23 |

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

  • Sergey Nazarenko
    18 October 2019, 10:40 |

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

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


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

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

  • Viktor L.
    18 October 2019, 2:16 |

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

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

  • Profile deleted
    18 October 2019, 9:51 |

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

  • Mihail Tsarev Future-SEO
    18 October 2019, 9:53 |

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

  • Profile deleted
    18 October 2019, 10:26 |
    bool BlueStacksWindowClick( HWND hWnd, EButton btn, LONG x, LONG y );

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

  • Mihail Tsarev Future-SEO
    18 October 2019, 10:28 |

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

  • Sergey Nazarenko
    18 October 2019, 10:44 |

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

  • Profile deleted
    18 October 2019, 10:47 |

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

  • Viktor L.
    21 October 2019, 3:55 |

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

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

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

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

     

    image


  • Sergey Nazarenko
    21 October 2019, 4:03 |

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

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

  • Viktor L.
    21 October 2019, 4:14 |

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

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

  • Alex Sol
    22 October 2019, 1:50 |

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

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

  • Sergey Nazarenko
    22 October 2019, 10:34 |

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

  • Profile deleted
    22 October 2019, 11:13 |

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

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

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

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

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

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

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

  • Sergey Nazarenko
    22 October 2019, 11:16 |

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

  • Alex Sol
    22 October 2019, 12:11 |

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

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

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

  • Viktor L.
    22 October 2019, 12:06 |

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

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

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

  • Sergey Nazarenko
    22 October 2019, 13:24 |

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

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

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

    ...

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

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

    ...

    "

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

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

  • Sergey Nazarenko
    22 October 2019, 13:27 |

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

Current freelance projects in the category C & C++

Development of a Minecraft Java Seed Map / Seed Viewer for the website

Development of Minecraft Java Seed Map / Seed Viewer for the websiteProject Description A browser-based tool Minecraft Java Seed Map / Seed Viewer needs to be developed, which will work on our website and allow the user to enter a seed from Minecraft Java Edition and view an…

C & C++HTML & CSS ∙ 13 days back ∙ 17 proposals

Client
Mihail Tsarev Future-SEO
Ukraine Dnepr  8  0
Project published
6 years back
278 views