2013-02-05 8 views
7

Robotクラスをスクリーン上で右クリックして保存できるようにしようとしています。問題は、私はロボットが正常に右クリックをシミュレートするように見えることができないことです。私がやっていることのいくつかのサンプルコードです。ロボットクラスを右クリックすることができません

BUTTON2_DOWN_MASKがスクロールホイールのマスクであるようです。私はこのコードを実行するたびに、それは最初だけで、定期的に場所でクリックしたが、その後、スクロールホイールは、超高速移動円がポップアップし、光の速度で、私は今、スクロールすることができます私に語ったが、私は右クリックをしたかった...

CODE:

// This is the function I use to simulate a full click at location x,y on the screen 
// Rob is my Robot 
public void click(int x, int y, int mask) 
{ 
    rob.mouseMove(x, y); 
    sleepy(1000); 
    rob.mousePress(mask); 
    rob.mouseRelease(mask); 
} 

// This is the few lines of code that call this function 
// sleepy just calls the Thread.sleep function. 

sleepy(1000); // Wait one second 
click(705, 390, InputEvent.BUTTON1_DOWN_MASK); 
sleepy(1000); 
click(705, 390, InputEvent.BUTTON2_DOWN_MASK); 
sleepy(1000); 
+0

sleepyの代わりにrob.delay(1000)を呼び出すことができます。 –

答えて

13

InputEvent.BUTTON3_DOWN_MASKを右クリックします。 BUTTON2は、マウスのホイールが正しく認識され、左クリックがBUTTON1です。

このexampleを参照してください。

+0

まあ、私は愚かに感じさせない... Idkなぜ私はそれを考えていない... –

+0

基本的にJavaはここで大失敗をするので。通常、マウスの右ボタンは2番目のマウスボタンとみなされ、中央のボタンは3番目のマウスボタンとみなされます。 4番目のボタンは通常親指にあります。 –

関連する問題