gpt4 book ai didi

objective-c - 使用 `CGEventSourceSetLocalEventsSuppressionInterval` 而不是弃用的 `CGSetLocalEventsSuppressionInterval`

转载 作者:太空狗 更新时间:2023-10-30 04:01:16 25 4
gpt4 key购买 nike

以编程方式移动鼠标光标时,必须设置 CGSetLocalEventsSuppressionInterval0因此事件是实时进入的,而不是有 250 毫秒的延迟。

不幸的是,CGSetLocalEventsSuppressionInterval在 Snow Leopard 中被标记为已弃用。

备选方案是 CGEventSourceSetLocalEventsSuppressionInterval(CGEventSourceRef source, CFTimeInterval seconds); https://developer.apple.com/library/mac/#documentation/Carbon/Reference/QuartzEventServicesRef/Reference/reference.html#//apple_ref/c/func/CGEventSourceSetLocalEventsSuppressionInterval

-(void) mouseMovement:(CGEventRef) newUserMouseMovement
{
//Move cursor to new position
CGSetLocalEventsSuppressionInterval(0.0); //Deprecated in OS X 10.6
CGWarpMouseCursorPosition(NSPointToCGPoint(newMousePosition));
CGSetLocalEventsSuppressionInterval(0.25); //Deprecated in OS X 10.6

//--OR--//

CGEventSourceRef source = ???;
CGEventSourceSetLocalEventsSuppressionInterval(source, 0.0);
CGWarpMouseCursorPosition(NSPointToCGPoint(newMousePosition));
CGEventSourceSetLocalEventsSuppressionInterval(source, 0.25);
}

我无法使用后一种方法。

所以我想我的问题是如何获得 CGEventSourceRef该功能需要吗?

是用户正常鼠标移动的事件源吗?还是为了我的光标手动变形?

最佳答案

事件源似乎在任何地方都没有解释,也没有人知道如何使用它们。

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

在 warp 调用后立即调用 CGAssociateMouseAndMouseCursorPosition( true ) 以使 Quartz 事件系统放弃此特定 warp 的延迟。

关于objective-c - 使用 `CGEventSourceSetLocalEventsSuppressionInterval` 而不是弃用的 `CGSetLocalEventsSuppressionInterval`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10196603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com