2012-08-29 34 views
5

我想將鼠標指針移動到特定位置,然後執行SHIFT +鼠標右鍵點擊。我能夠將鼠標移動到某個位置,但無法模擬鼠標點擊。如何模擬SHIFT +鼠標按鍵在java中

Robot r = new Robot(); 
r.mouseMove(x1,y1); 

我該怎麼做才能模擬預期的鼠標點擊?

+0

@Tim:好的,謝謝。 –

回答

7

我想你會只需要機器人一點點額外的信息來順利完成,儘量

r.keyPress(KeyEvent.VK_SHIFT); 
r.mousePress(KeyEvent.BUTTON3_MASK); 
r.mouseRelease(KeyEvent.BUTTON3_MASK); 
r.keyRelease(KeyEvent.VK_SHIFT); 
+0

@ MadProgrammer:我收到無效的鍵碼異常事件 – DarkKnight

+0

@DarkKnight對不起,是我不好,複製其他國家的人民代碼並沒有檢查它:P - 我已經測試並更新了這個例子 – MadProgrammer

1

這應該做的伎倆:

r.mousePress(InputEvent.BUTTON3_MASK); 
r.mouseRelease(InputEvent.BUTTON3_MASK); 

這裏重要的是不要忘記按下並釋放它,因爲這些是2個不同勢事件。

+0

它是否相當於MouseEvent.BUTTON1_MASK | MouseEvent.SHIFT_MASK? – DarkKnight

+0

MouseEvent擴展了InputEvent,所以它也可以工作,但InputEvent工作100%。 http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseEvent.html – Ossie7

+0

@ Ossie7能否請您鏈接到Java的API 7在未來,它有助於突出可能淘汰的API給用戶除其他事項外) – MadProgrammer

1

按與robotclass的關鍵很簡單:

r.keyPress(KeyEvent.VK_SHIFT); //hold down shift 
r.mousePress(InputEvent.BUTTON3_MASK); //perform a right click 
r.mouseRelease(InputEvent.BUTTON3_MASK); //release right click 
r.keyRelease(KeyEvent.VK_SHIFT); //release shift 

InputEventKeyEventjava.awt.event

+0

OP說*「執行SHIFT +鼠標右鍵單擊」 * –

+0

很簡單,補充說,在 – axl