2014-06-08 3 views
1

이 값은오류가 나는 버튼 4. 마우스 이벤트를 사용 얻기 위해 노력하고

int moused = MouseInfo.getNumberOfButtons(); 

방법을 사용하는 경우 반환 내가 어떤 어떤을 작동하지 않을 수 5입니다 버튼은 오른쪽 클릭 인 버튼 4 이외에 있습니다. 당신은 다음과 같이 InputEvent.getMaskForButton를 호출 한 결과 mousePress을 통과해야

Exception in thread "main" java.lang.IllegalArgumentException: Invalid combinati 
on of button flags 
     at java.awt.Robot.checkButtonsArgument(Robot.java:324) 
     at java.awt.Robot.mousePress(Robot.java:260) 
     at RobotExp4.main(RobotExp4.java:23) 

import java.awt.*; 
import java.awt.event.KeyEvent; 
public class RobotExp4{ 
public static void main(String [] args){ 
try{ 
    Robot robot = new Robot(); 
    System.out.println("7 Seconds after this message appears the robot will start to open a browser and make a search."); 
    robot.delay(7000); 
    robot.keyPress(KeyEvent.VK_WINDOWS); 
    robot.keyRelease(KeyEvent.VK_WINDOWS); 
    robot.delay(1000); 
    robot.keyPress(KeyEvent.VK_C); 
    robot.keyRelease(KeyEvent.VK_C); 
    robot.delay(150); 
    robot.keyPress(KeyEvent.VK_M); 
    robot.keyRelease(KeyEvent.VK_M); 
    robot.delay(150); 
    robot.keyPress(KeyEvent.VK_D); 
    robot.keyRelease(KeyEvent.VK_D); 
    robot.delay(5000); 
    robot.mouseMove(1340, 192); 
    robot.delay(200); 
    robot.mousePress(5); 
    robot.delay(75); 
    robot.mouseRelease(5); 

}catch(AWTException e){ 
    e.printStackTrace();   
} 
} 
} 

답변

2

: 코드를 실행하면이 오류를 얻을

int mask4 = InputEvent.getMaskForButton(4); 
robot.mousePress(mask4); 
robot.delay(75); 
robot.mouseRelease(mask4); 

A와 반대로 당신이 마스크를 통과해야하는 이유 버튼 번호는 다음 버튼 조합을 지원하는 것입니다.

int mask1_and_2 = InputEvent.getMaskForButton(1) | InputEvent.getMaskForButton(2); 

위의 마스크는 버튼 1과 2를 동시에 누르는 것에 해당합니다.

+1

나는 그것을 시도하고 그것은 다음과 같은 오류 반환 : RobotExp4.java:24 : 오류 : 기호를 찾을 수 없습니다 INT mask4 = InputEvent.getMaskForButton (4); ^ 기호 : 변수 InputEvent 위치 : 클래스 RobotExp4 1 오류 –

0

문제는 릴리스 버튼을 사용하는 데 있습니다.

Robot autoPlay = new Robot(); 
autoPlay.setAutoDelay(500); 

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

위의 코드를 사용하면 문제가 해결됩니다.