2010-08-05 33 views
8

Tôi đang tìm cách mô phỏng sự kiện di chuyển chuột trong Mac OS X 10.6. Nó sẽ phải được xác định trong các đơn vị chuột (thay vì pixel - đó là quan trọng!)Mô phỏng di chuyển chuột vật lý trong Mac OS X

Tôi cần điều này cho một thử nghiệm về cơ bản bao gồm các đường vẽ.

Mọi ý tưởng đều được chào đón.

Cảm ơn bạn!

Trả lời

7

Một trong những cách dễ nhất để di chuyển chuột trong Mac OS X và các hệ điều hành khác là sử dụng Java Robot. Nó cũng có thể mô phỏng các sự kiện khác. Ví dụ, chuột xuống hoặc thậm chí một phím bấm. Tuy nhiên, nó di chuyển con trỏ đến một tọa độ màn hình nhất định. Vì vậy, điều duy nhất bạn cần làm là chuyển đổi các đơn vị vật lý của bạn thành các tọa độ thích hợp. Dưới đây là một ví dụ mã:

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); 
    } 
} 

Để kiểm tra mã này, đặt nó vào tập tin JavaRobotExample.java, sau đó biên dịch nó bằng cách sử dụng lệnh sau:

javac JavaRobotExample.java 

Khi tập tin JavaRobotExample.class được sản xuất, chạy it:

java JavaRobotExample 

Thời gian chạy Java đi kèm với Mac OS X theo mặc định. Tôi không chắc chắn về SDK (trình biên dịch) mặc dù. Nếu bạn không có lệnh javac, chỉ cần cài đặt Xcode.

+0

Vấn đề là, tôi đang thử nghiệm xử lý chuột Mac (và tăng tốc) và tôi muốn hệ thống nghĩ rằng tôi đã di chuyển chuột của mình - để xem cách di chuyển con trỏ. Tôi cho rằng đây là một số nội dung cấp thấp hơn. Tôi biết nó có thể trong Windows bằng cách sử dụng "nircmdc" với lệnh "sendmouse move x y". Cảm ơn bạn đã viết mã, nó sẽ có ích cho các thử nghiệm khác! :-) – Dae

+1

@Dae Trong trường hợp này, bạn cần phải viết trình điều khiển HID của bạn hoặc móc vào hiện tại. Có một trình điều khiển Xbox HID mã nguồn mở cho OSX, bạn có thể sử dụng như một ví dụ - http://xhd.cvs.sourceforge.net/viewvc/xhd/xhd/ –

+0

@VladLazarenko đây là một câu trả lời tuyệt vời và một giải pháp cho một cái gì đó tôi cố gắng tìm ra. có cách nào để làm điều này thông qua C? tôi có thể gắn bó với java nhưng tôi thích C tốt hơn và rất thích biết nếu có một cách đơn giản để làm điều này trong C (không C#, mục tiêu C, vv - chỉ đơn giản C). – drjrm3

Các vấn đề liên quan