移动鼠标光标(OSX版本的Windows' SetCursorPos)

时间:2015-12-31 18:19:25

标签: c++ macos

我一直试图将鼠标光标放在Mac OSX El capitan 10.11.2上。我做了一些挖掘,发现有些方法被弃用,有些是新的。试过很多例子,但到目前为止都没有。

这是我迄今为止所尝试的内容

CGWarpMouseCursorPosition(CGPointMake(200, 200));

这没有工作并返回0

CGPoint warpPoint = CGPointMake(42, 42);
CGWarpMouseCursorPosition(warpPoint);
CGAssociateMouseAndMouseCursorPosition(true);

CGWarp也在这里返回0(基本上是同样的东西)

CGDisplayHideCursor (kCGNullDirectDisplay);
CGAssociateMouseAndMouseCursorPosition (false);
CGDisplayMoveCursorToPoint (kCGDirectMainDisplay, CGPointMake(200, 200));
CGAssociateMouseAndMouseCursorPosition (true);
CGDisplayShowCursor (kCGNullDirectDisplay);

这来自apple.developer也没有。

重要说明:我正在使用VMWare虚拟机。

我尝试过更多代码,但没有任何效果。

1 个答案:

答案 0 :(得分:1)

您正在寻找事件队列。以下是Objective-C中的一些示例调用:

CGPoint startButton = CGPointMake(self.gameOrigin.x + 35, self.gameOrigin.y + 340);
CGEventRef click_down = CGEventCreateMouseEvent(
                                                NULL, kCGEventLeftMouseDown,
                                                startButton,
                                                kCGMouseButtonLeft
                                                );
CGEventRef click_up = CGEventCreateMouseEvent(
                                              NULL, kCGEventLeftMouseUp,
                                              startButton,
                                              kCGMouseButtonLeft
                                              );
CGEventPost(kCGHIDEventTap, click_down);
CGEventPost(kCGHIDEventTap, click_up);
CFRelease(click_up);
CFRelease(click_down);