gpt4 book ai didi

iphone - 在 Mac 上模拟鼠标

转载 作者:行者123 更新时间:2023-12-03 19:47:21 25 4
gpt4 key购买 nike

我的 iPhone 上有一个虚拟触控板,可以用来移动我正在使用的鼠标:


CGDisplayMoveCursorToPoint(kCGDirectMainDisplay, CGPointMake(((float)aD.msg)+location.x, ((float)aD.msg2)+location.y));

它运行良好,但这不是真正的鼠标,因为当我将鼠标放在隐藏的扩展坞上时,这个鼠标不会自行显示。我不明白为什么。更多的是,我尝试用以下命令模拟鼠标点击:


case MOUSECLICK:
[self postMouseEventWithButton:0 withType:kCGEventLeftMouseDown andPoint:CGEventGetLocation(CGEventCreate(NULL))];
[self postMouseEventWithButton:0 withType:kCGEventLeftMouseUp andPoint:CGEventGetLocation(CGEventCreate(NULL))];<p></p>

<p>// *********************</p>

<p>-(void)postMouseEventWithButton:(CGMouseButton)b withType:(CGEventType)t andPoint:(CGPoint)p
{
CGEventRef theEvent = CGEventCreateMouseEvent(NULL, t, p, b);
CGEventSetType(theEvent, t);
CGEventPost(kCGHIDEventTap, theEvent);
CFRelease(theEvent);
}
</p>

这是个好方法吗?感谢您的帮助!

最佳答案

CGDisplayMoveCursorToPoint() 仅移动光标的图像,它不会生成任何事件。您应该创建并发布 kCGEventMouseMoved 类型的鼠标事件来模拟移动鼠标。你自己的方法就可以做到:

[self postMouseEventWithButton:0 withType:kCGEventMouseMoved andPoint:point];

对于点击量,我认为您已经以正确的方式进行了操作。您还应该做的一件事是正确设置鼠标按下和鼠标松开事件的点击计数,如下所示:

CGEventSetIntegerValueField(event, kCGMouseEventClickState, 1);

...因为有些应用程序需要它。

(另请参阅 Simulating mouse clicks on Mac OS X does not work for some applications )

如果你的代码不起作用,我不知道为什么;我觉得还可以。尝试发布到 kCGSessionEventTap 而不是 kCGHIDEventTap 并查看是否有帮助。此外,您不需要 CGEventSetType() 调用,因为类型已在创建调用中设置。

关于iphone - 在 Mac 上模拟鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2340438/

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