我想使用机器人点击鼠标按钮4,侧按钮。
InputEvent
只有3个标准的左、中(滚动)和右按钮。
InputEvent.BUTTON1_DOWN_MASK = 1024
InputEvent.BUTTON2_DOWN_MASK = 2048
InputEvent.BUTTON3_DOWN_MASK = 4096
因此,我尝试将公式流到Robot
,并向8192
发送数字
public static void main(String[] args)
{
try
{
Robot mouseHandler = new Robot();
mouseHandler.mousePress(8192);
mouseHandler.mouseRelease(8192);
} catch (AWTException e)
{
e.printStackTrace();
}
}
但是它不起作用(如预期的那样),抛出一个异常:
Exception in thread "main" java.lang.IllegalArgumentException: Invalid combination of button flags
at java.awt.Robot.checkButtonsArgument(Robot.java:320)
at java.awt.Robot.mousePress(Robot.java:256)
at controller_client.MainClass.main(MainClass.java:30)
可以用按钮4创建鼠标单击吗?
发布于 2019-04-01 09:12:44
好的,在搜索了更多之后,我找到了这个函数,它可以返回从1到20 MouseEvent.getMaskForButton(int button)
的任何鼠标按钮掩码。
在尝试之后,Robot
类确实成功地单击了button4和button5的侧按钮,如下所示:
try
{
Robot mouseHandler = new Robot();
int mouseButtonNum = 4; // 1 - 20
// but only buttons from 1 to 5 did work with Robot
mouseHandler.mousePress(MouseEvent.getMaskForButton(mouseButtonNum));
mouseHandler.mouseRelease(MouseEvent.getMaskForButton(mouseButtonNum));
} catch (AWTException e)
{
e.printStackTrace();
}
我使用了一个带有3个按钮的鼠标,Robot
成功地点击了4个和5个按钮。但是Robot
似乎只能在1到5之间单击按钮,所以Hovercraft Full Of Eels的解释可能是正确的:
我还想知道你的问题是否不仅是操作系统特有的,而且是厂商特有的,因为我不知道大多数普通操作系统是否已经完全解决了额外的和可能不寻常的鼠标按钮的处理问题。
如果他做得对,那么我使用的操作系统是Windows10。如果有人有Linux
,并且他知道如何将更多的鼠标按钮定位到Linux
,并试图使Robot
点击鼠标按钮在5以上,那么请注意我的鼠标按钮是否有效。
https://stackoverflow.com/questions/55436569
复制相似问题