Cum se creează un bot pe java care funcționează cu aplicația (nu java), fără ca focalizarea să se concentreze

Există un program (bot) în Java. Există o altă aplicație (joc) în fereastră (1024x768).

Aveți nevoie de un bot care va efectua automat acțiunile din joc.
În Java există o clasă numită Robot:







care este potrivită pentru aceasta (poate emula clicuri, clicuri de mouse), dar această clasă necesită în mod necesar atenția aplicației.

Există vreo soluție care va funcționa fără focalizare?
(Orice soluție va face, chiar dacă trebuie să scrieți această parte a codului în C / C ++)

a fost văzut ultima dată: Feb 4 'la 2:17 pm

Puteți face acest lucru numai cu JNI, adică va trebui să scrieți cod în C / C ++.

Vă recomand să vedeți cum este construită biblioteca jnativehook. ea știe deja cum să prindă evenimentele nativ.

Puteți să apelați codul C ++ din Java ca acesta:

1) creați un pachet Java pentru a apela codul:

2) scrie un program în C ++ (sendkeys_impl.cpp)

3) a face un antet pentru interacțiunea cu codul C (sendkeys.h)







4) să-l elibereze sub forma unui DLL, în fișierul C (sendkeys.c) care specifică un astfel de design:

5) pentru a colecta ceva de genul: g ++ -Wl, - add-stdcall-alias -I "% JAVA_HOME% \ includ" -I "% JAVA_HOME% \ includ \ win32" -shared o- sendkeys.dll sendkeys.c sendkeys .cpp 6) poate fi rulat! java SendkeysTest sau java -Djava.library.path =. SendkeysTest

În detaliu, toate acestea sunt descrise într-una din multele instrucțiuni ale JNI.

Apoi, puteți folosi orice tutorial pentru a trimite apăsările de taste utilizând C ++ sau setați acest voros la StackOverflow. Locul unde introduceți codul corespunzător, pe care îl aveți deja.

Dacă aveți nevoie pentru a trimite unui cod arbitrar, va trebui fie SendInput () (este pe ferestrele 2k / XP și, prin urmare, de preferat), sau keybd_event () (lucrări în noul sistem de operare). Cu toate acestea, există evenimente evenimente WM_SYSCOMMAND / WM_KEYDOWN / WM_KEYUP / WM_CHAR la SendMessage.

De exemplu, iată modul în care puteți trimite mesaje către Notepad utilizând funcția SendInput menționată mai sus:

Sau cu SendMessage:

(Exemplele sunt luate din această discuție despre StackOverflow principal)

Apăsând butoanele mouse-ului și mișcarea sa pot fi trimise și prin SendInput:

Urmatoarea este treaba ta tot ce bine se lipesc între ele și să se adapteze sarcina dumneavoastră, scrieți un chei complet corecte posylalki pe o combinație de Java + C ++ nu se încadrează într-o dimensiune rezonabilă a răspunsului.







Articole similare

Trimiteți-le prietenilor: