2012-08-29 40 views
5

Tôi muốn di chuyển con trỏ chuột đến một vị trí cụ thể và thực hiện SHIFT + nút chuột phải. Tôi có thể di chuyển chuột đến một vị trí nhưng không thể mô phỏng nhấp chuột.Làm thế nào để mô phỏng phím SHIFT + Nhấn chuột trong java

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

Tôi nên làm gì để mô phỏng nhấp chuột mong muốn?

+0

@ Tim: Nice, cảm ơn. –

Trả lời

7

Tôi nghĩ rằng bạn sẽ chỉ cần một ít thông tin thêm cho robot để hoàn thành công, hãy thử

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

@ MadProgrammer: Tôi nhận được mã khóa ngoại lệ không hợp lệ – DarkKnight

+0

@DarkKnight Xin lỗi, mã lỗi của tôi đã bị sao chép xấu và không kiểm tra nó: P - Tôi đã kiểm tra và cập nhật ví dụ – MadProgrammer

1

này nên làm như lừa:

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

quan trọng ở đây không phải là để quên nhấn và thả nó, bởi vì đó là 2 sự kiện khác nhau.

+0

Có tương đương với MouseEvent.BUTTON1_MASK không | MouseEvent.SHIFT_MASK? – DarkKnight

+0

MouseEvent mở rộng InputEvent, vì vậy nó có thể hoạt động tốt, nhưng InputEvent hoạt động 100%. http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseEvent.html – Ossie7

+0

@ Ossie7 Bạn có thể vui lòng liên kết với Java 7 API trong tương lai hay không, nó giúp làm nổi bật các API không được chấp nhận có thể có cho người dùng Trong số những thứ khác;) – MadProgrammer

1

Nhấn một phím với robotclass rất đơn giản:

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 

InputEventKeyEvent là trong java.awt.event.

+0

OP cho biết * "thực hiện SHIFT + nút chuột phải bấm" * –

+0

đủ đơn giản, được thêm vào trong – axl

Các vấn đề liên quan