您好,我正在使用java.atw.Robot在java中創建一個bot。該機器人在瀏覽器上運行良好(我也使用微軟的Word進行了測試!),但是當我在遊戲中運行它時,唯一可行的功能是mouseMove。我想建立一個簡單的按下鍵盤按鈕的機器人。在線遊戲的Java bot
我實例化機器人類
Robot r = new Robot();
然後我做一些簡單的東西: 按z,請按1,移動鼠標並點擊右鍵。
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);
爲什麼會發生這種情況?如果它在後臺運行,該Robot類可以在遊戲中執行這些類型的操作嗎?
謝謝
更新:如果我在2012年PES運行我的機器人爲例,它工作正常,但如果我像驚天動地的在線遊戲運行它,它不工作?遊戲的保護系統沒有檢測到任何東西,所以情況並非如此。
遊戲通常會對機器人進行「防禦」 - 只是一種可能性。 –
嘗試在'keyPress'和'keyRelease'事件之間添加幾毫秒的延遲。如果這是一款正常的街機遊戲,那麼我敢打賭,遊戲只是輪詢每個打勾,看看鍵是否*當前下降*,不捕獲「鍵按下」和「鍵釋放」等即時事件。 – Quuxplusone
嘗試過,它不工作... –