2012-08-29 22 views
5

Quiero mover el puntero del mouse a una ubicación particular y realizar MAYÚS + clic con el botón derecho del mouse. Puedo mover el mouse a una ubicación pero no puedo simular el clic del mouse.Cómo simular MAYÚS + Tecla del mouse presionar en java

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

¿Qué debo hacer para simular el clic esperado del mouse?

+0

@Tim: Niza, gracias. –

Respuesta

7

que cree que necesitará un poco de información extra para el robot para completar con éxito, intente

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

@ MadProgrammer: Estoy recibiendo la excepción de código de clave no válida – DarkKnight

+0

@DarkKnight Lo siento, mi mal, copió el código de otras personas y no lo verificó: P - He probado y actualizado el ejemplo – MadProgrammer

1

esto debe hacer el truco:

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

Aquí es importante no olvidar que presionar y liberarlo, ya que esos son 2 eventos diffrent.

+0

¿Es equivalente a MouseEvent.BUTTON1_MASK | MouseEvent.SHIFT_MASK? – DarkKnight

+0

MouseEvent extiende InputEvent, por lo que podría funcionar también, pero InputEvent funciona al 100%. http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseEvent.html – Ossie7

+0

@ Ossie7 Podría vincular las API de Java 7 en el futuro, ayuda a resaltar posibles API obsoletas para los usuarios , entre otras cosas;) – MadProgrammer

1

Al pulsar una tecla con el robotclass es simple:

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 

InputEvent y KeyEvent están en java.awt.event.

+0

OP dijo * "realizar MAYÚS + clic derecho del mouse" * –

+0

bastante simple, agregó que en – axl

Cuestiones relacionadas