Я использую следующий код для имитации щелчка мыши:
void PostMouseEvent(CGMouseButton button, CGEventType type, const CGPoint point)
{
CGEventRef theEvent = CGEventCreateMouseEvent(NULL, type, point, button);
CGEventSetType(theEvent, type);
CGEventPost(kCGHIDEventTap, theEvent);
CFRelease(theEvent);
}
void LeftClick(const CGPoint point)
{
PostMouseEvent(kCGMouseButtonLeft, kCGEventMouseMoved, point);
NSLog(@"Click!");
PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseDown, point);
PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseUp, point);
}
Я могу использовать в основном тот же код, чтобы сделать контрольный щелчок (щелчок правой кнопкой мыши), изменив:
kCGEventLeftMouseDown
kCGEventLeftMouseUp
kCGMouseButtonLeft
к их соответствующим «Правильным» событиям. Функция выглядит примерно так:
void RightClick(const CGPoint point)
{
PostMouseEvent(kCGMouseButtonRight, kCGEventMouseMoved, point);
NSLog(@"Click Right");
PostMouseEvent(kCGMouseButtonRight, kCGEventRightMouseDown, point);
PostMouseEvent(kCGMouseButtonRight, kCGEventRightMouseUp, point);
}
Но как насчет двойного щелчка? Я попытался отправить 2 щелчка левой кнопкой мыши и дважды вызвать PostMouseEvent(), но безуспешно. Как вы выполняете двойной щелчок?
Благодарность!