2012-08-29 10 views
5

Ich möchte den Mauszeiger an eine bestimmte Stelle bewegen und UMSCHALT + rechte Maustaste klicken. Ich kann die Maus an einen Ort bewegen, aber keinen Mausklick simulieren.Wie simuliere ich SHIFT + Maustaste drücken in Java

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

Was soll ich tun, um den erwarteten Mausklick zu simulieren?

+0

@ Tim: Nice, danke. –

Antwort

7

Ich glaube, Sie brauchen nur ein wenig zusätzliche Informationen für Roboter erfolgreich abzuschließen, versuchen

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

@ MadProgrammer: Ich bekomme ungültigen Schlüsselcode Ausnahme – DarkKnight

+0

@DarkKnight Sorry, meine schlechte, kopierte andere Völker Code und habe es nicht überprüft: P - Ich habe das Beispiel getestet und aktualisiert – MadProgrammer

1

dies sollte es tun:

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

Wichtig hier ist nicht zu vergessen, es zu drücken und wieder loslassen, da das sind 2 diffrent Ereignisse.

+0

Ist es äquivalent zu MouseEvent.BUTTON1_MASK | MausEvent.SHIFT_MASK? – DarkKnight

+0

MouseEvent erweitert InputEvent, also könnte es auch funktionieren, aber InputEvent funktioniert zu 100%. http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseEvent.html – Ossie7

+0

@ Ossie7 Könnten Sie bitte in Zukunft zu Java 7 APIs verlinken, um mögliche veraltete APIs für Benutzer hervorzuheben , unter anderem;) – MadProgrammer

1

eine Taste mit der robotclass Pressen ist einfach:

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 und KeyEvent in java.awt.event sind.

+0

OP sagte * "UMSCHALT + rechte Maustaste klicken" * –

+0

einfach genug, fügte hinzu, dass in – axl

Verwandte Themen