안녕하세요, java.atw.Robot을 사용하여 Java에서 봇을 만들고 있습니다. 봇은 브라우저에서 잘 작동하지만 (마이크로 소프트 단어를 사용하여 테스트 한 적이 있습니다!) 게임에서 실행할 때 mouseMove 만 작동하는 유일한 함수입니다. 나는 나를 위해 단순히 키보드 버튼을 누르는 봇을 만들고 싶다. 마우스 오른쪽 클릭을 이동 z를 눌러 눌러 1 :온라인 게임을위한 Java 봇
은 내가
Robot r = new Robot();
가 그럼 난 몇 가지 간단한 물건을 할 로봇 클래스를 인스턴스화합니다.
r.keyPress(KeyEvent.VK_Z);
r.keyRelease(KeyEvent.VK_Z);
r.keyPress(KeyEvent.VK_1);
System.out.println("Press 1 button");
r.keyRelease(KeyEvent.VK_1);
System.out.println("Release 1 button");
r.delay(1000);
System.out.println("Move mouse");
r.mouseMove(110, 690);
System.out.println("Press");
r.mousePress(InputEvent.BUTTON3_MASK);
System.out.println("Release");
r.mouseRelease(InputEvent.BUTTON3_MASK);
왜 이런 일이 발생합니까? 이 로봇 클래스가 백그라운드에서 실행되는 경우 게임 내에서 이러한 종류의 동작을 수행 할 수 있습니까?
는 당신에게 감사업데이트 : 나는 예를 들어 2012 PES 내 로봇을 실행하면 잘 작동하지만 난 음모와 같은 온라인 게임에서 실행하는 경우, 그것은 작동하지 않는 이유는 무엇입니까? 게임의 보호 시스템은 아무것도 감지하지 못합니다.
게임에는 종종 봇에 대한 '방어'기능이 있습니다. –
'keyPress'와'keyRelease' 이벤트 사이에 몇 밀리 초의 지연을 추가하십시오. 이것이 일반적인 아케이드 스타일의 게임이라면, 게임은 각 틱을 폴링하여 키가 현재 눌려져 있는지 아닌지 확인하고, "눌린 키"와 "키를 놓은 키"와 같은 순간 이벤트를 포착하지 않을 것입니다. – Quuxplusone
그것과 그 작동하지 시도 ... –