OSX将鼠标左键单击键盘键

时间:2011-06-10 21:56:10

标签: cocoa macos mouse applescript

我希望能够在键盘上指定一个键,相当于鼠标左键单击。

理想情况下,需要采取行动使按住键也等同于按住鼠标左键。

我希望这个功能作为用户,另外一个程序化的解决方案(cocoa / applescript等)也会很棒。

2 个答案:

答案 0 :(得分:2)

不完全符合您的要求,但在系统偏好设置中 - >通用访问可以打开鼠标键 - 使用它们,您可以通过键盘移动(并单击)鼠标。 docs:

或者, 使用“ControllerMate.app”可以做到这一点,但它是商业应用程序。

答案 1 :(得分:2)

这可以通过编写一些代码来完成:

编写全局处理程序以接收您要监视的事件类型

[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask 
                                       handler:^(NSEvent *event){
                                           NSLog(@"%i", [event keyCode]);

                                           //todo invoke mouse clicking code;
                                       }];

然后编写鼠标点击代码:

// get current mouse pos
CGEventRef ourEvent = CGEventCreate(NULL);
CGPoint point = CGEventGetLocation(ourEvent);
NSLog(@"Location? x= %f, y = %f", (float)point.x, (float)point.y);

// perform a click
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventRef theEvent = CGEventCreateMouseEvent(source, kCGEventLeftMouseDown, point, kCGMouseButtonLeft);
CGEventSetType(theEvent, kCGEventLeftMouseDown);
CGEventPost(kCGHIDEventTap, theEvent);
CFRelease(theEvent);