ПредишенСледващото

Има една програма (бот) в 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 ++ не е подходящо за един разумен размер на отговора.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!