Как смоделировать движение мыши и щелчок мышью на Mac, используя C или C ++ - PullRequest
3 голосов
/ 07 ноября 2011

Я пытаюсь смоделировать движение мыши и щелчок мышью по Mac, используя C или C ++.

Но, к сожалению, я не могу найти библиотеки для этого.

Я видел windows.h (работает только для Windows), а также swinput (работает для linux)

Есть ли что-нибудь подобное для Mac?

Ответы [ 2 ]

2 голосов
/ 04 февраля 2012

CGPostMouseEvent устарела в SnowLeopard. Вы можете заменить его на что-то вроде

CGEventRef mouseDownEv = CGEventCreateMouseEvent (NULL,kCGEventLeftMouseDown,pt,kCGMouseButtonLeft);
CGEventPost (kCGHIDEventTap, mouseDownEv);

CGEventRef mouseUpEv = CGEventCreateMouseEvent (NULL,kCGEventLeftMouseUp,pt,kCGMouseButtonLeft);
CGEventPost (kCGHIDEventTap, mouseUpEv );

CGEventRef CGEventCreateMouseEvent( 
    CGEventSourceRef source,        // The event source may be taken from another event, or may be NULL.
    CGEventType mouseType,          // `mouseType' should be one of the mouse event types. 
    CGPoint mouseCursorPosition,    // `mouseCursorPosition'  should be the position of the mouse cursor in global coordinates. 
    CGMouseButton mouseButton);     // `mouseButton' should be the button that's changing state; 
                                    // `mouseButton'  is ignored unless `mouseType' is one of 
                                    // `kCGEventOtherMouseDown', `kCGEventOtherMouseDragged', or `kCGEventOtherMouseUp'.

Кнопка мыши 0 является основной кнопкой мыши. Кнопка мыши 1 - это дополнительная кнопка мыши (справа). Кнопка мыши 2 является центральной кнопкой, а остальные кнопки расположены в порядке устройства USB.

kCGEventLeftMouseDown
kCGEventLeftMouseUp
kCGEventRightMouseDown
kCGEventRightMouseUp
kCGEventMouseMoved
kCGEventLeftMouseDragged
kCGEventRightMouseDragged

теперь в вашем распоряжении.

1 голос
/ 07 ноября 2011

Я рекомендую вам проверить, как порты VNC для Mac делают это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...