Я использовал следующий код для программной выдачи кликов на Mac
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 Click(const CGPoint point)
{
PostMouseEvent(kCGMouseButtonLeft, kCGEventMouseMoved, point);
NSLog(@"Click!");
PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseDown, point);
PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseUp, point);
}
Теперь я пытаюсь нажать вниз , чтобы иметь возможность перетаскивать объекты, такие как полоса прокрутки или окно приложения. Я использую следующее:
PostMouseEvent(kCGMouseButtonLeft, kCGEventMouseMoved, point);
NSLog(@"Click Down!");
PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseDown, point);
Когда я запускаю код, указанный выше, происходит что-то интересное, когда левая мышь не работает, кажется, ничего не происходит, я двигаю мышь, и окно не перемещается, однако, когда я добавил мышь вверх событие тогда окно прыгнуло к месту где якобы его перетянул. это вроде нормально, однако, как я могу сделать щелчок мыши вниз и перетащить объект?
Примечание: у меня есть целый метод, чтобы увидеть, когда мышь перестала двигаться, чтобы я мог щелкнуть вверх.
пожалуйста, отправьте код.
Спасибо