4

App Store 上有很多应用程序可以让你控制 Mac 的光标——你在 iPhone 上安装应用程序,在 Mac 上安装一些客户端软件,然后当你在手机上移动手指时,它就会控制你的 Mac通过蓝牙。

我的问题是,这是怎么做到的?不是在 iOS 端,而是在 Mac 端。如何以编程方式更改 Mac 上光标的位置?

提前致谢 :)

4

2 回答 2

9

正如@H2C03 所述,您可以通过 执行此操作CGWarpMouseCursorPosition(),但是您只能每 250 毫秒(0.25 秒)扭曲鼠标位置。为了解决这个问题,你必须添加一些额外的代码来不断地扭曲鼠标。

NSPoint mouseWarpLocation = NSMakePoint(100, 100);

CGEventSourceRef evsrc = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventSourceSetLocalEventsSuppressionInterval(evsrc, 0.0);
CGAssociateMouseAndMouseCursorPosition (0);
CGWarpMouseCursorPosition(mouseWarpLocation);
CGAssociateMouseAndMouseCursorPosition (1);
CFRelease(evsrc);
于 2012-10-21T06:36:23.623 回答
1

CoreGraphics 可以做到 - 具体来说,您正在寻找该CGWarpMouseCursorPosition()功能。Quartz (CoreGraphics)在此处显示服务文档

示例:将光标移动到屏幕中央:

CGDirectDisplayID displayID = CGMainDisplayID();
size_t screenWidth = CGDisplayPixelsWide(displayID);
size_t screenHeight = CGDisplayPixelsHigh(displayID);
CGPoint centerOfScreen = CGPointMake(screenWidth / 2, screenHeight / 2);
CGWarpMouseCursorPosition(centerOfScreen);
于 2012-10-21T06:30:10.800 回答