2011-11-10 131 views
4

我遇到了java機器人問題, 我正在用它來製作一款遊戲的像素機器人。 當我使用機器人來點擊沒有任何反應, 我聽說有更多的問題,人們無法點擊某些應用程序。 但我找不到任何解決方案。 我也讀過關於跟蹤鼠標移動的內容。但對我來說這似乎很奇怪,因爲按鍵也不起作用。 我嘗試點擊的遊戲可能是C++和DirectX。 林100%肯定我的代碼工作,因爲我可以移動deskopt圖標,並做更多的東西。 那麼,有什麼方法可以解決這個問題嗎?還是我需要使用其他語言? 謝謝!java機器人的問題。鼠標點擊不起作用

jeroen。

回答

1

使用機器人時的典型錯誤是機器人需要絕對屏幕座標。有時候人們(包括我自己)會獲得相對於窗口的相對座標,並嘗試用Robot來點擊它。確保您能夠找到您嘗試點擊的屏幕元素的絕對座標。

確保機器人能夠找到某個桌面圖標的座標,例如,將一些圖標放在屏幕的左上角附近,然後單擊點20x20。你會看到效果。

不幸的是,您還沒有提供您的代碼,所以我不能給你更好的答案。

+0

我嘗試了你給我的圖標在頂部角落的想法,我只是一個簡單的點擊和拖動scipt, 而且它適用於我... 也玩遊戲時,你可以擁有選擇屏幕,然後按f1-9鍵以使用項目。當我選擇屏幕並使用awtrobot時,它不會執行任何操作。我還使用機器人制作了鼠標點擊的屏幕截圖,並且截圖與我嘗試點擊的位置相匹配,如果您喜歡,我可以提供我的整個屏幕截圖。 – jeroen

+0

對不起。我現在沒有可用的代碼,但我過去使用過Robot,它對我來說工作得很好。我真的不明白什麼不適合你。你可以做點擊,藥物老鼠,所以什麼都行不通? – AlexR

+0

我以後會發布我的代碼,我可以在普通桌面上使用機器人的所有選項,還有一些其他的東西,例如paint,en chrome。但有1場比賽,名爲flyff(這是一個C++和DirectX遊戲),當我嘗試點擊或使用機器人按下它只是不工作。而且我不知道遊戲是否有辦法阻止java機器人。或者它是用java編寫的,遊戲是C++。現在我的問題是:如果遊戲有辦法檢測機器人,我該怎麼做才能檢測到它。如果這是在C++上的Java代碼的問題,我該如何解決這個問題? – jeroen

0

試試這個

public class Main { 

    private Robot robot = new Robot(); 

    public Main() throws AWTException, IOException { 
     robotMouseClick(600, 600); 
} 

    private void robotMouseClick(int x, int y) { 
     robot.mouseMove(x, y); 
     robot.mousePress(InputEvent.BUTTON1_MASK); 
     robot.mouseRelease(InputEvent.BUTTON1_MASK); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) throws AWTException, IOException { 
     new Main(); 


     } 
} 

這個工作對我來說

至於機器人去ü不能真正做什麼特別的JVM以外的任何進程。