OSX назначить левую кнопку мыши на клавиатуре

Я хотел бы иметь возможность назначить клавишу на моей клавиатуре, чтобы она была эквивалентна щелчку левой кнопкой мыши.

В идеале он должен действовать так, чтобы удержание клавиши также эквивалентно удерживанию левой кнопки мыши.

Мне бы хотелось, чтобы эта возможность была как у пользователя, кроме того, было бы неплохо и программное решение (какао / яблочный скрипт и т. Д.).

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);

Не совсем то, что вы хотите, но в Системных настройках -> Универсальный доступ вы можете включить клавиши мыши - и с их помощью вы можете перемещать (и щелкать) мышь за клавиатурой. документы здесь:

Или, с помощью "ControllerMate.app" можно сделать это, но это коммерческое приложение.

Другие вопросы по тегам