Я пытаюсь написать сценарий, который будет иметь право щелкнуть правой кнопкой мыши по OS X 10.11.5. Я использую Foundation Foundation для Objective-C для этого. До сих пор мне удалось успешно щелкнуть левой кнопкой мыши.Опубликовать событие щелчка правой кнопкой мыши, используя CGPostMouseEvent
Сценарий, приведенный ниже, можно щелкнуть левой кнопкой мыши, используя CGPostMouseEvent
, документацию для которого можно найти в CGRemoteOperation.h.
В комментариях упоминается, что мне нужен boolean_t
для окончательного параметра в CGPostMouseEvent. Я не уверен, что это значит, но я попытался следующие комбинации Params без толку:
(пт, 1, 1, 0, 1)
(пт, 1, 1, (0, 1))
(пт, 1, 1, 2)
Что такое правильный последний параметр для CGPostMouseEvent, чтобы вызвать правой кнопкой мыши?
#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;
// This is where the magic happens. See CGRemoteOperation.h for details.
//
// CGPostMouseEvent(CGPoint mouseCursorPosition,
// boolean_t updateMouseCursorPosition,
// CGButtonCount buttonCount,
// boolean_t mouseButtonDown, ...)
//
// So, we feed coordinates to CGPostMouseEvent, put the mouse there,
// then click and release.
//
CGPostMouseEvent(pt, 1, 1, 1);
CGPostMouseEvent(pt, 1, 1, 0);
[pool release];
return 0;
}
'CGPostMouseEvent' устарел в Mac OS 10.6. – Willeke