Write the function on c++/winapi to emulate the click by mouse in the program.
The code should be approximately this.
by LButton and RButton;
int HWND = 0;
bool getBlueStacksHWND( int& HWND ); // if a click requires a different parameter rather than a window decryptor then do what you think is right.
Bool BlueStacksWindowClick(const int& HWND , const bool& /* mouse button*/ LButton, const int& x, const int& y );
The click should only work over the program. My manipulation by the mouse outside the program should not interfere with it.
You must work in the program provided it is in the shrinking mode. It is desirable, but if it is not possible, it is good.
Client's review of cooperation with Viktor L.
Write the function on c++/winapi to emulate the click by mouse in the program.Everything was done as required, thank you.
Freelancer's review of cooperation with Mihail Tsarev
Write the function on c++/winapi to emulate the click by mouse in the program.It arranged everything: an interesting project, a clear task, fast payment.
I am happy and I can recommend the customer!
-
"в свернутом режиме." - в таком варианте вряд-ли получиться
-
"Должно работать в программе при условии что она будет в свернутом режиме."
Имеется в виду, что программа, которая генерирует клики мышкой должна быть свернута? Или что BlueStacks или программа в нем должна быть свернута, но клики мышки должны до нее долетать? -
- какая игра? это важно, чтобы знать как отслеживать куда/когда кликать
-
Только что попробовал программно отсылать клик в свернутый Paint. Как и ожидал, точка рисуется относительно ClientRect. Возможно стиля окна играют роль, хотя обработка сигналов от этого вроде не зависит.
C BlueStacks так же должно работать, главное правильный хендл найти/иметь.
-

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

Если вариант с SendMessage/PostMessage не работает в ваших условиях, попробуйте SendInput API (пример). Окно BlueStacks должно быть активным (в фокусе и на переднем плане), чтоб это заработало.
-
Все на самом деле банально... главное раньше времени не паниковать))
Хотелось бы пополнить свои скромные знания/набраться вдохновения:
BlueStacks приложение на Windows. Допустим оно использует напрямую железо. Откуда железо знает, где находится курсор мыши в координатах рабочего стола, когда сам BlueStacks в оконном режиме? Как только мы "заходим" мышкой в окно приложения, Windows теряет контроль над происходящим, а приложение наооборот, полностью его заполучает? Черная дыра в Windows? С точки зрения архитектуры Windows было бы очень интересно посмотреть/либо разработать такое приложение.
На уровне драйверов можно много чего сделать (особенно на уровне ядра), но как только речь заходит о взаимодействии с пользователем, тут все обращаются к винде. Зачем писать для Windows и при этом всеми способами пытаться избегать ее API? Это как тренировать баскетбольную команду и выпустить играть ее на футбольное поле...
-
Неплохое решения использовать ADB
https://androidp1.ru/ispolzovanie-komandy-adb-shell-input-tap-i-shell-input-swipe/
-
Сергей, я ошибаюсь или у вас на самом деле повышенный интерес написать именно такую функцию, которая в окно в бэкграунде кликала бы? 😉
Хотя Антон прав, такой постановки задачи не было, но и мне теперь интересно, возможно ли это. Я уверен в своём решении, можно просто выбирать окна и переключать их в свернутом БлуСтексе, тут все просто (конечно надо заранее знать, сколько программ будут открыты, как смещаются табы во время активации другого окна и т.д.) . Вопрос следующий: что делает программа, когда переходит на задний план? Или вернее правильно будет спросить, что андроид делает с обычной аппликацией (не сервисом), когда она в бэкграунде? Не зная андроида, могу предположить, что ни одна (нормальная) игра не продолжает выполнять все те действия, что и в форграунде. Иначе после трёх-четырёх запущеных игрушек смартфон можно вместо грелки использовать. Да и, будь я разработчиком ОС, не позволял бы использовать к примеру ресурсы видеокарты, точно зная, что они не нужны приложению. Эмулятор вроде БлуСтекса вполне может вести себя по-другому, не различая между активным/неактивным приложением, но это под большим сомнением.
Поэтому, мне кажется это не только не возможно, но и бессмысленно тыкать в область, которая скорее всего не выполняет цикл обработки пользовательских команд.
-
Current freelance projects in the category C & C++
Development of a Minecraft Java Seed Map / Seed Viewer for the websiteDevelopment 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 |
