我希望能够在键盘上指定一个键,相当于鼠标左键单击。
理想情况下,需要采取行动使按住键也等同于按住鼠标左键。
我希望这个功能作为用户,另外一个程序化的解决方案(cocoa / applescript等)也会很棒。
答案 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);