Самый простой способ? Скомпилируйте это приложение Какао и передайте ему движения мыши.
Вот код:
// File:
// click.m
//
// Compile with:
// gcc -o click click.m -framework ApplicationServices -framework Foundation
//
// Usage:
// ./click -x pixels -y pixels
// At the given coordinates it will click and release.
#import <Foundation/Foundation.h>
#import <ApplicationServices/ApplicationServices.h>
int main(int argc, char **argv) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSUserDefaults *args = [NSUserDefaults standardUserDefaults];
// grabs command line arguments -x and -y
//
int x = [args integerForKey:@"x"];
int y = [args integerForKey:@"y"];
// The data structure CGPoint represents a point in a two-dimensional
// coordinate system. Here, X and Y distance from upper left, in pixels.
//
CGPoint pt;
pt.x = x;
pt.y = y;
// https://stackoverflow.com/questions/1483567/cgpostmouseevent-replacement-on-snow-leopard
CGEventRef theEvent = CGEventCreateMouseEvent(NULL, kCGEventLeftMouseDown, pt, kCGMouseButtonLeft);
CGEventSetType(theEvent, kCGEventLeftMouseDown);
CGEventPost(kCGHIDEventTap, theEvent);
CFRelease(theEvent);
[pool release];
return 0;
}
Приложение вызвало щелчок, который вызывает CGPostMouseEvent из заголовочного файла CGRemoteOperation.h. Он принимает координаты в качестве аргументов командной строки, перемещает мышь в эту позицию, затем щелкает и отпускает кнопку мыши.
Сохраните приведенный выше код как click.m, откройте терминал и перейдите в папку, где вы сохранили исходный код. Затем скомпилируйте программу, набрав gcc -o click click.m -framework ApplicationServices -framework Foundation
. Не пугайтесь необходимости компилировать это, так как комментариев больше, чем кода. Это очень короткая программа, которая выполняет одну простую задачу.
Другой способ? Импортируйте pyobjc , чтобы получить доступ к некоторым элементам OSX и таким образом получить доступ к мыши. (см. код из первого примера для идей).