Има една програма (бот) в Java. Има и други приложения (Game) в прозореца (1024x768).
Имате нужда от бот, който автоматично да извършва действия в играта.
Java има класа робот:
което е подходящо за това (може да подражава на щракване, кликвания на мишката), но този клас е непременно необходимо фокус приложение.
Има ли някакъв начин да се решения, които ще работят без фокус?
(Подходящ всяко решение, дори и ако трябва да напиша тази част от кода в C / C ++)
настроен 04 Февруари '16 в 23:17
За да направите е възможно само чрез JNI, тогава няма да има да се напише код за C / C ++.
Аз препоръчвам да се види как разположен във вътрешността на jnativehook на библиотеката. тя е в състояние да улови случай роден.
Обадете се на кода C ++ от Java, можете да:
1) Създаване на Java-обвивка, за да се обадя на кода:
2) напише програма на C ++ (sendkeys_impl.cpp)
3) да се заглавие за взаимодействието с код С (sendkeys.h)
4) организира в DLL, такава структура посочва файл C (sendkeys.c):
5) да събира нещо като това: гр ++ -Wl, - добави-stdcall-псевдоним -I "% JAVA_HOME% \ включват" -I "% JAVA_HOME% \ включват \ win32" -shared -o sendkeys.dll sendkeys.c sendkeys .cpp 6), можете да стартирате! Java SendkeysTest или Java -Djava.library.path =. SendkeysTest
Освен това всички детайли, описани в една от множеството инструкции JNI.
След това можете да се възползвате от някакви уроци по изпращане на клавиши с помощта на C ++, или да поиска, че Ворос на Stackoverflow. Мястото, където да въведете съответния код, който вече имате.
Ако трябва да се изпрати на случаен код, ще трябва или SendInput () (тя е на прозорците 2k / XP и затова за предпочитане), или keybd_event () (работи в новата операционна система). И все пак има събития WM_SYSCOMMAND / WM_KEYDOWN / WM_KEYUP / WM_CHAR събития до SendMessage.
Ето, например, за да можете да изпращате съобщения, използвайки Notepad SendInput споменато по-горе:
Или с помощта SendMessage:
(Примери са съставени от тази дискусия тук на главния Stackoverflow)
Кликвания на мишката, и неговото движение също може да бъде изпратен по SendInput:
След това е вашата работа, всичко, което е добре да се държим заедно и да се адаптират, задачата си за написването на напълно правилни ключове posylalki на комбинация от Java + C ++ не е подходящо за един разумен размер на отговора.
Свързани статии