早在 2010 年,皮埃尔问了这个问题(他接受的答案对我不起作用)。
我遇到了同样的问题:我能够从我的 Cocoa 应用程序以编程方式成功地将鼠标移动(和关闭!?!)屏幕,但是将鼠标带到我的扩展坞的位置并没有显示它(还有一些其他应用程序没有注册鼠标移动事件,例如移除鼠标的游戏)
因此,我使用的方法是:
void PostMouseEvent(CGMouseButton button, CGEventType type, const CGPoint point)
{
CGEventRef theEvent = CGEventCreateMouseEvent(NULL, type, point, button);
CGEventSetType(theEvent, type);
CGEventPost(kCGSessionEventTap, theEvent);
CFRelease(theEvent);
}
然后当我想移动鼠标时,我运行:
PostMouseEvent(0, kCGEventMouseMoved, mouseLocation);
请注意,此代码确实会为链接等内容生成鼠标悬停事件。
现在是 2013 年,是否有可能解决此问题?
谢谢你的时间!