2010-08-05 155 views
8

我正在寻找一种在Mac OS X 10.6中模拟鼠标移动事件的方法。它必须在鼠标单元中定义(而不是像素 - 这很重要!)在Mac OS X中模拟物理鼠标移动

我需要这个基本上由绘制线组成的实验。

欢迎任何想法。

谢谢!

回答

7

在Mac OS X和其他操作系统中移动鼠标最简单的方法之一是使用Java Robot。它也可以模拟其他事件。例如,鼠标向下或甚至按键。但是,它将指针移动到给定的屏幕坐标。所以你唯一需要做的就是将你的物理单位转换成适当的坐标。下面是一个代码示例:

import java.awt.AWTException; 
import java.awt.Robot; 

public final class JavaRobotExample 
{ 
    public static void main(String[] args) throws AWTException 
    { 
    Robot robot = new Robot(); 

    robot.setAutoDelay(5); 
    robot.setAutoWaitForIdle(true); 

    robot.mouseMove(0, 0); 
    robot.delay(1000); 
    robot.mouseMove(200, 10); 
    robot.delay(1000); 
    robot.mouseMove(40, 130); 

    System.exit(0); 
    } 
} 

为了测试此代码,把它放到JavaRobotExample.java文件,然后使用以下命令进行编译:

javac JavaRobotExample.java 

一旦JavaRobotExample.class文件产生时,运行它:

java JavaRobotExample 

默认情况下Java运行时带有Mac OS X.虽然我不确定SDK(编译器)。如果您没有javac命令,只需安装Xcode即可。

+0

问题是,我正在测试Mac鼠标处理(和加速度),我希望系统认为我移动了我的鼠标 - 看它如何移动光标。 我想这是一些较低级别的东西。我知道在Windows中可以使用“nircmdc”命令“sendmouse move x y”。 谢谢你的代码,它会派上用场的另一个实验! :-) – Dae 2010-08-06 09:38:24

+1

@Dae在这种情况下,您需要将HID驱动程序或挂钩写入现有驱动程序。有一个用于OSX的开源Xbox HID驱动程序,您可以使用它作为示例 - http://xhd.cvs.sourceforge.net/viewvc/xhd/xhd/ – 2010-08-06 13:06:29

+0

@VladLazarenko这是一个很好的答案和解决方案试图弄清楚。有没有办法通过C做到这一点?我可以坚持使用java,但我更喜欢C,并且很想知道是否有一种简单的方法可以在C中执行此操作(而不是C#,目标C等 - 只是普通的C)。 – drjrm3 2012-10-16 00:54:25