Objective C - Mac OS X - 在特定应用程序上模拟鼠标单击事件

时间:2015-02-12 18:41:01

标签: objective-c xcode macos mouseevent

我想要做的就是模拟鼠标点击应用程序的窗口,例如finder。

到目前为止,这是关于如何进行鼠标双击事件的代码。但只会点击左上角的屏幕。假设用户点击查找器,查找器窗口打开。我希望我的代码能够模拟指向应用程序中心的点击。

双击代码:

CGEventRef theEvent = CGEventCreateMouseEvent(NULL, kCGEventLeftMouseDown, CGPointMake(0,0), kCGMouseButtonLeft);
CGEventPost(kCGHIDEventTap, theEvent);
CGEventSetType(theEvent, kCGEventLeftMouseUp);
CGEventPost(kCGHIDEventTap, theEvent);

CGEventSetIntegerValueField(theEvent, kCGMouseEventClickState, 2);

CGEventSetType(theEvent, kCGEventLeftMouseDown);
CGEventPost(kCGHIDEventTap, theEvent);

CGEventSetType(theEvent, kCGEventLeftMouseUp);
CGEventPost(kCGHIDEventTap, theEvent);

CFRelease(theEvent);

我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

要更改点击的位置,您需要修改此行:

CGEventRef theEvent = CGEventCreateMouseEvent(NULL, kCGEventLeftMouseDown, CGPointMake(0,0), kCGMouseButtonLeft);

CGEventRef theEvent = CGEventCreateMouseEvent(NULL, kCGEventLeftMouseDown, CGPointMake(desiredX,desiredY), kCGMouseButtonLeft);

其中,期望X和期望Y是窗口/应用程序中心的x和y。