2013-02-05 13 views
7

Próbuję ustawić klasę Robot prawym przyciskiem myszy na obrazie na ekranie, aby go zapisać. Problem polega jednak na tym, że nie mogę sprawić, by robot symulował prawidłowe kliknięcie. Oto przykładowy kod tego, co robię.Nie można pobrać klasy robot prawym przyciskiem myszy.

Wygląda na to, że BUTTON2_DOWN_MASK jest maską dla kółka przewijania. Ilekroć wykonanie tego kodu najpierw tylko regularnie kliknie na miejscu, ale potem super szybki ruch koło wyskakuje i mówi mi teraz mogę przewijać z prędkością światła pokrętło, ale chciałem prawym przyciskiem ..

KOD:

// 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

Możesz zadzwonić do rob.delay (1000) zamiast uśpionego. –

Odpowiedz

13

użyć InputEvent.BUTTON3_DOWN_MASK dla kliknięcia prawym przyciskiem myszy. BUTTON2 jest tak, jak zauważyłeś poprawnie kółko myszy, a lewe kliknięcie to BUTTON1.

zobacz to example.

+0

Cóż, nie czuję się głupi ... Idk, dlaczego nie pomyślałem o tym ... –

+0

Zasadniczo, ponieważ Java robi błąd tutaj. Zwykle prawy przycisk myszy jest uważany za drugi przycisk myszy, a środkowy - za trzeci. Czwarty przycisk zazwyczaj znajduje się na kciuku. –

Powiązane problemy