App Store上有很多应用程序允许您控制Mac的光标 - 您在iPhone上安装应用程序和Mac上的某些客户端软件,然后在手机上移动手指时通过蓝牙控制你的Mac。
我的问题是,这是怎么做到的?不是在iOS方面,而是在Mac方面。如何以编程方式更改Mac上光标的位置?
提前致谢:)
答案 0 :(得分: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);
答案 1 :(得分:1)
CoreGraphics可以做到 - 具体来说,您正在寻找CGWarpMouseCursorPosition()
功能。 Quartz(CoreGraphics)display services documentation在这里。
示例:将光标移动到屏幕中央:
CGDirectDisplayID displayID = CGMainDisplayID();
size_t screenWidth = CGDisplayPixelsWide(displayID);
size_t screenHeight = CGDisplayPixelsHigh(displayID);
CGPoint centerOfScreen = CGPointMake(screenWidth / 2, screenHeight / 2);
CGWarpMouseCursorPosition(centerOfScreen);