2010-08-05 75 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