Viktor L.
Oferta, która wygrała- Zlecenia 23
- Ocena -
- Ranking 1 275
Budżet: 350 UAH Termin: 2 dni
Pozdrawiam Michał.
Dla sportowego zainteresowania chciałbym spróbować zrealizować projekt. Jeśli się zgadzasz, skontaktuj się.
Oferty ukryte
Aktualnie brak ofert
-
Sergey Nazarenko 17 października 2019"Должно работать в программе при условии что она будет в свернутом режиме."
Имеется в виду, что программа, которая генерирует клики мышкой должна быть свернута? Или что BlueStacks или программа в нем должна быть свернута, но клики мышки должны до нее долетать? -
Mihail Tsarev
17 października 2019
БлуСтакс в свёрнутом, но напомню, это желательно но не обязательно
-
Alex Sol 17 października 2019окно BlueStacks будет показано на рабочем столе. свернуть окно и отсылать нужные координаты - это не получится
-
Alex Sol 17 października 2019- какая игра? это важно, чтобы знать как отслеживать куда/когда кликать
-
Igor Lyalchenko 17 października 2019Вы бы чуть добавили категорий. Конкретно тыкать мышью по эмулятору другой ОС из хвостовой я не пробовал, но мне что то подсказывает что даже общестстемный тык может не пройти. Я б поспрашивал там где пишут под андроид конкретно. Это все ж их поле.
-
Mihail Tsarev
17 października 2019
Не думаю что в этом есть проблема, я проверял через spy, дочернее окно игры сообщений не ловит, только сам эмулятор, думаю это решаемо, я бы и сам попробовал, но совершить клик через сообщения у меня никогда и нигде не получалось, видать чего-то не понимаю в тонкостях и последовательности отправки сообщений((
-
Sergey Nazarenko 18 października 2019А тыкать нужно именно в игру? Или в БлуСтекс? Потому как, тыкнуть в другое окно винды - это одно. А тыкать в окно внутри эмулятора - это немножко другое.
-
Sergey Nazarenko 18 października 2019А не проще ли написать приложение под Андроид, которое будет запускаться на том же БлуСтексе и тыкать "мышкой" (точнее пальцем) в окно игры?
-
Mihail Tsarev
18 października 2019
возможно проще, но я умею писать только на c++, а платить гору денег за такую программу ради игры желания особого нет.
-
Oleksandr Vishnyak 18 października 2019Ну тогда вы ничего не получите. Вам нужен бот-автокликер, что равносильно читу. Читы стоят не дешево.
-
Mihail Tsarev
18 października 2019
функция для эмуляции клика в окне программы это чит? идите проспитесь
-
Oleksandr Vishnyak 18 października 2019Не, если вам надо просто прокликивать одну и ту же кнопку по какому-то простецкому алгоритму, 350 грн - это разумная цена. Если вам нужен пример автокликера и вам впадлу копаться в вопросе, хотя вы "знаете с++" - что ж, можно и проконсультировать. Тогда так и пишите - нужна консультация с примером.
-
Mihail Tsarev
18 października 2019
мне не нужна консультация, я пытался выполнить клик повторяя сообщения из SPY, но увы клик не работает, нигде не получилось кликнуть, не только в BlueStacks, наверно чего-то не понимаю в смысле последовательности оконных сообщений. Вот и сделал заказ на функцию.
-
Oleksandr Vishnyak 18 października 2019Вытаскивать хендлы и эмилировать проклик элементов - несложно. Только вот еще надо знать куда кликать.
-
Sergey Nazarenko 18 października 2019Проблема не в том, сколько это стоит, проблема в том, что Заказчик хочет получить приложение, которое отправляет сообщение с кликом мышки не просто в другое окно, а внутрь виртуальной машины (которая использует механизмы виртуализации и напрямую с железом работает), да еще и так, чтобы эта виртуальная машина поняла, что нужно это сообщение переадресовать конкретному запущенному в ней приложению. Я не думаю, что разработчики БлуСтекса вообще предусматривали API для подобных штук. А без него - вряд ли что то вообще получится.
Т.е. стоимость данной задачи соответствует стоимости разработки своего БлуСтекса, только с соответствующим АПИ. Либо стоимости разработки дополнения к БлуСтексу (если такие вообще возможны).
Хотя, я могу и ошибаться. -
Mihail Tsarev
18 października 2019
где написано что мне нужно какое-то приложение? мне нужна 1 функция и только, если вы не понимаете принцип работы окон виндовса как и не можете читать ТЗ то зачем писать ерунду, сообщения от виндовса проходят через главное окно программы, а она уже сама отправляет их дальше дочерним окнам если что.
-
Sergey Nazarenko 18 października 2019"сообщения от виндовса проходят через главное окно программы, а она уже сама отправляет их дальше дочерним окнам"
Ну да. Все, как Вы описали. Только с условием, что дочерние окна - это окна Виндовса, а не внутренняя кухня эмулятора. В окне БлуСтекса может быть просто "клиентская область" в которой отрисовывается все происходящее. И с точки зрения внешней Винды у него вообще может не быть дочерних окон.Кинуть клик в координаты экрана БлуСтекса - не проблема. Но кинуть клик так, чтобы БлюСтекс понял, что этот клик нужно направить в какое-то запущенное под ним приложение (не факт, что находящееся на фореграунде) - это скорее всего утопия.
Хотя - да! Я могу и ошибаться.
Удачи Вам в решении этой задачи.
-
Viktor L. 18 października 2019Только что попробовал программно отсылать клик в свернутый Paint. Как и ожидал, точка рисуется относительно ClientRect. Возможно стиля окна играют роль, хотя обработка сигналов от этого вроде не зависит.
C BlueStacks так же должно работать, главное правильный хендл найти/иметь.
-
Anton Kravtsov 18 października 2019у вас же ранее был выполнен аналогичный проект для Dota2... то решение не заработало для BlueStacks, что ли?
-
Mihail Tsarev
18 października 2019
там был общий клик, а мне нужен клик именно в конкретной программе
-
Anton Kravtsov 18 października 2019bool BlueStacksWindowClick( HWND hWnd, EButton btn, LONG x, LONG y );
x и у - это что за координаты должны быть?
-
Sergey Nazarenko 18 października 2019Если у Вас получится прокинуть клик в окно Raid shadow legends, запущенной в БлуСтексе, то что конкретно за координаты, думаю разницы нет - их можно уже потом пересчитывать как угодно.
Проблема, насколько я понял, в том, чтобы вообще достучаться "мышкой" до указанной игры. -
Anton Kravtsov 18 października 2019Если вариант с SendMessage/PostMessage не работает в ваших условиях, попробуйте SendInput API (пример). Окно BlueStacks должно быть активным (в фокусе и на переднем плане), чтоб это заработало.
-
Viktor L. 21 października 2019Все на самом деле банально... главное раньше времени не паниковать))
Хотелось бы пополнить свои скромные знания/набраться вдохновения:
BlueStacks приложение на Windows. Допустим оно использует напрямую железо. Откуда железо знает, где находится курсор мыши в координатах рабочего стола, когда сам BlueStacks в оконном режиме? Как только мы "заходим" мышкой в окно приложения, Windows теряет контроль над происходящим, а приложение наооборот, полностью его заполучает? Черная дыра в Windows? С точки зрения архитектуры Windows было бы очень интересно посмотреть/либо разработать такое приложение.
На уровне драйверов можно много чего сделать (особенно на уровне ядра), но как только речь заходит о взаимодействии с пользователем, тут все обращаются к винде. Зачем писать для Windows и при этом всеми способами пытаться избегать ее API? Это как тренировать баскетбольную команду и выпустить играть ее на футбольное поле...
-
Sergey Nazarenko 21 października 2019Все классно. Но у Вас клики отправляются в БлуСтекс, а не в приложение в нем.
Попробуйте в БлуСтексе переключиться в ГуглПлей (например), и запустите свое приложение. Оно будет продолжать рисовать точки? Или начнет кликакть в ГуглПлее?
-
Viktor L. 21 października 2019Естественно она будет тыкать в ГуглПлее. В принципе как и требовалось от заказчика. Иначе я просто напросто не понял ТЗ.
Для вами представленной ситуации не буду утверждать, что все также банально решимо, возможно и вовсе нет. Но если вдруг у кого-то появится такая необходимость, я посоветую открыть два Блустекса параллельно)) Про истинную пользу такого приложения не хочу рассуждать, мне просто интересно было )
-
Alex Sol 22 października 2019Неплохое решения использовать ADB
https://androidp1.ru/ispolzovanie-komandy-adb-shell-input-tap-i-shell-input-swipe/
-
Sergey Nazarenko 22 października 2019Решение не плохое, но оно мало чем отличается от найденного Виктором Либрехтом. Оно позволяет тыкать в любую область Андроида, но не позволяет тыкать в заданное неактивное окно внутри него.
-
Anton Kravtsov 22 października 2019... не позволяет тыкать в заданное неактивное окно внутри него
По-моему, вы излишне усложнили задачу :)
Заказчику вроде бы это и не требовалось.
Пожелание вида
Должно работать в программе при условии что она будет в свернутом режиме
скорее всего, относилось к окну BlueStacks.
В глубинах Android'а я не разбираюсь, но, по-моему, там вообще нереально кликать в "неактивное окно".
-
Sergey Nazarenko 22 października 2019Если я некорректно интерпретировал текст задачи, то Заказчик мог бы об этом сообщить. Но он молчит. :(
-
Alex Sol 22 października 2019неактивное окно емулятора или окно в Андроиде?
в неактивная область(окно, кнопки) как бы и не может принимать клик, на то она и не активная
Adb решения позволяет работать с андроидом когда окном емулятора неактивное
-
Viktor L. 22 października 2019Сергей, я ошибаюсь или у вас на самом деле повышенный интерес написать именно такую функцию, которая в окно в бэкграунде кликала бы? ;)
Хотя Антон прав, такой постановки задачи не было, но и мне теперь интересно, возможно ли это. Я уверен в своём решении, можно просто выбирать окна и переключать их в свернутом БлуСтексе, тут все просто (конечно надо заранее знать, сколько программ будут открыты, как смещаются табы во время активации другого окна и т.д.) . Вопрос следующий: что делает программа, когда переходит на задний план? Или вернее правильно будет спросить, что андроид делает с обычной аппликацией (не сервисом), когда она в бэкграунде? Не зная андроида, могу предположить, что ни одна (нормальная) игра не продолжает выполнять все те действия, что и в форграунде. Иначе после трёх-четырёх запущеных игрушек смартфон можно вместо грелки использовать. Да и, будь я разработчиком ОС, не позволял бы использовать к примеру ресурсы видеокарты, точно зная, что они не нужны приложению. Эмулятор вроде БлуСтекса вполне может вести себя по-другому, не различая между активным/неактивным приложением, но это под большим сомнением.
Поэтому, мне кажется это не только не возможно, но и бессмысленно тыкать в область, которая скорее всего не выполняет цикл обработки пользовательских команд.
-
Sergey Nazarenko 22 października 2019Я предполагаю, что тыканье мышкой в неактивную программу внутри эмулятора (любого, а не только БлуСтекса) - задача нерешаемая в принципе (если не говорить о написании своего эмулятора).
Но формулировка данной задачи мне показалось, указывает именно на такую необходимость.
"Написать функцию на c++/winapi для эмуляции клика мышкой в программе BlueStacks, клик естественно должен заставлять игру/приложение - выполнять действие.
...
Клик должен работать только над программой. Мои манипуляции мышью вне программы не должны ей мешать.
Должно работать в программе при условии что она будет в свернутом режиме.
...
"
Я почему-то прочитал "в программе BlueStacks" так, как будто программа - это запущенная внутри БлуСтекс программа, а не БлуСтекс - это программа.
Жаль, что Заказчик не развеял моего заблуждения. А то я, возможно, тоже поборолся бы за результат :)
-
Sergey Nazarenko 22 października 2019А насчет "Поэтому, мне кажется это не только не возможно, но и бессмысленно тыкать в область, которая скорее всего не выполняет цикл обработки пользовательских команд.", то тут, как Вы правильно заметили, все зависит от реализации. Ведь Windows позволяет тыкать мышкой (и слать другие сообщения) в неактивне окна? Что мешает это делать другим операционкам?
Aktualne zlecenia dla freelancerów w kategorii C i C++
Wymagana jest разработка łatki do sterownika karty graficznej, rozszerzającej możliwości zarządzania adapterem graficznym poprzez dodanie dodatkowych ustawień użytkownika. Łatka powinna integrować się z istniejącą architekturą sterownika bez naruszania jego podstawowej funkcjonalności i zapewniać zgodność z obsługiwanymi wersjami systemu operacyjnego. Głównym celem jest zapewnienie bardziej elastycznego dostępu do parametrów, które są niedostępne w standardowej panelu sterowania, z możliwością ich zmiany przez interfejs użytkownika lub programowe API. Łatka powinna przewidywać modułową strukturę, umożliwiającą w przyszłości dodawanie nowych parametrów bez istotnej przeróbki kodu. Należy zapewnić poprawne przetwarzanie błędów, rejestrowanie zmian, możliwość przywrócenia ustawień do wartości domyślnych, a także zachowanie zgodności z przyszłymi aktualizacjami sterownika, o ile to możliwe. Rozwiązanie powinno być dostarczone z dokumentacją techniczną opisującą architekturę, zrealizowane możliwości, ograniczenia oraz zalecenia dotyczące testowania.
Jesteśmy dużą firmą logistyczną, która ma własny eksport. Dysponujemy dużym parkiem samochodowym i nieustannie wysyłamy nasze pojazdy na eksport do krajów Europy.Opis Strona: https://echerha.gov.ua/ Na tej stronie umieszczamy nasze samochody w elektronicznej kolejce do przekroczenia granicy państwowej. Podczas rejestracji należy wprowadzić następujące dane: imię i nazwisko kierowcy; numer paszportu zagranicznego; adres e-mail; numer telefonu logisty do otrzymywania powiadomień; typ pojazdu (ciężarowy); nazwa producenta samochodu; numer rejestracyjny ciągnika; numer rejestracyjny przyczepy; numer deklaracji celnej. Dla każdego samochodu z góry określono konkretny dzień i godzinę przekroczenia granicy. Na przykład, samochód musi przejść przez punkt kontrolny „Rawa-Ruska” w poniedziałek o 10:00.Nasz problem - Kolejka na stronie https://echerha.gov.ua/ porusza się nieprzewidywalnie. - Na przykład, dzisiaj jest piątek, a samochód musi przekroczyć granicę w poniedziałek o 10:00. - Nie wiemy, kiedy dokładnie kolejka zacznie się posuwać. Może to nastąpić w piątek wieczorem, w dowolnym momencie w sobotę lub niedzielę, wcześnie rano, w ciągu dnia lub późno wieczorem. - Kiedy kolejka zaczyna się poruszać, jest to od razu widoczne na stronie. Czasami w ciągu zaledwie kilku minut może przesunąć się z piątku na poniedziałek lub nawet na wtorek. - Z tego powodu logistycy muszą nieustannie kontrolować aplikację mobilną lub stronę internetową, aby nie przegapić momentu, gdy kolejka dojdzie do potrzebnej daty i godziny. Jeśli ten moment zostanie utracony, fizycznie nie zdążamy umieścić samochodu w kolejce na odpowiedni slot czasowy.Zadanie - Po wprowadzeniu danych o samochodzie (na przykład do tabeli lub innego interfejsu, w zależności od realizacji programisty) system powinien automatycznie śledzić ruch kolejki. - Kiedy kolejka dojdzie do wcześniej określonej daty i godziny, system powinien automatycznie wypełnić wymagane dane i umieścić samochód w kolejce bez udziału logisty.
Szukam doświadczonego programisty TrinityCore 3.3.5a, który dobrze zna się na strukturze jądra, systemie Battleground, C++, SQL i kliencie WoW 3.3.5. W projekcie zintegrowano już niestandardowy Battleground „Dolina Niewolnictwa” (Slavery Valley), przeniesiony z AzerothCore na TrinityCore. Główna część pracy została już wykonana, jednak wymaga doprowadzenia do poziomu Blizzard.Co już zrobiono TrinityCore 3.3.5a + Eluna. Serwer w pełni skonfigurowany. Battleground zintegrowany z jądrem. Działa wejście do BG. Działa interfejs klienta (częściowo). Przeniesiono większość SQL i DBC. Buduje się bez błędów.Co należy zrobić Naprawić pozostałe błędy Battleground. Doprowadzić mechanikę do poziomu oficjalnych Battleground Blizzard. Naprawić fazę startową meczu. Wdrożyć poprawne bramy startowe/ściany ognia. Naprawić mechanikę przejmowania punktów. Naprawić zakończenie meczu. Sprawdzić przyznawanie punktów i działanie WorldState. Naprawić pozostałe problemy C++ i SQL. Przeprowadzić pełne testy gry.Wymagania Obowiązkowe doświadczenie: TrinityCore 3.3.5a; C++; SQL (MariaDB/MySQL); DBC; MPQ; Visual Studio; CMake; Git. Dużym plusem będzie: AzerothCore; Eluna; doświadczenie w tworzeniu Battleground; znajomość części klienckiej WoW 3.3.5a.Format pracy Praca etapowa. Po każdym etapie obowiązkowe testowanie. Każdy etap akceptowany tylko po weryfikacji w grze. Potrzebne są zrozumiałe raporty dotyczące zmian.W przyszłości To długoterminowy projekt. Po zakończeniu Battleground planowane jest: przeniesienie nowych Battleground; przeniesienie nowych aren; nowe rasy; nowe klasy; nowe systemy gry; dalszy rozwój własnego serwera World of Warcraft 3.3.5a. Szukam programisty, który już pracował z TrinityCore i będzie w stanie nie tylko pisać kod, ale doprowadzić system do w pełni działającego stanu.nie serwer z 0 jak chcę Jeśli szukasz programisty nie tylko na jeden Battleground, ale na stworzenie serwera od podstaw, to ogłoszenie powinno wyglądać mniej więcej tak.Nazwa projektu Rozwój serwera World of Warcraft 3.3.5a od podstaw (TrinityCore / C++ / SQL / Eluna)Opis projektu Szukam doświadczonego programisty TrinityCore 3.3.5a do długoterminowej współpracy. Potrzebuję osoby, która będzie w stanie od podstaw stworzyć w pełni gotowy serwer gry World of Warcraft 3.3.5a na bazie TrinityCore z dalszym rozwojem projektu. Projekt jest duży i przewidziany na kilka miesięcy rozwoju.Podstawa projektu TrinityCore 3.3.5a. Jak najbardziej stabilna i zbliżona do Blizzard baza. Eluna Lua Engine. MariaDB. Visual Studio + CMake. Git.Co planuje się zrealizować W pełni działający serwer 3.3.5a. Naprawa błędów jądra. Rozwój nowych systemów gry. Integracja niestandardowych Battleground. Integracja nowych aren. Przeniesienie użytecznych modułów z AzerothCore na TrinityCore. Rozwój własnych modułów. Nowe systemy PvP i PvE. Nowe wydarzenia w grze. Balansowanie klas. Dodatkowe systemy progresji. Poprawa wydajności serwera.W przyszłości Po zakończeniu podstawowej części planowane jest: nowe rasy; nowe klasy; nowe strefy; nowe lochy; nowe rajdy; nowe Battleground; nowe profesje; nowe mechaniki gry; integracja nowoczesnych systemów w kliencie 3.3.5a.Wymagania dla programisty Obowiązkowe: Doskonała znajomość TrinityCore 3.3.5a. Pewna znajomość C++. SQL (MariaDB/MySQL). Git. Visual Studio. CMake. Znajomość architektury TrinityCore. Doświadczenie w pracy z Battleground, PvP i mechanikami gry. Dużym plusem będzie: Doświadczenie w pracy z AzerothCore. Eluna Lua Engine. Praca z DBC i MPQ. Doświadczenie w tworzeniu własnych systemów gry.Format pracy Praca etapowa. Każde zadanie jest dokumentowane jako osobne zadanie techniczne. Po każdym etapie przeprowadzane są obowiązkowe testy. Praca akceptowana tylko po weryfikacji bezpośrednio w grze. Potrzebny jest programista, który potrafi doprowadzić funkcjonalność do w pełni działającego stanu, a nie tylko pisać kod.
