Russian Qt Forum

Qt => Общие вопросы => Тема начата: GPPsoft от Декабрь 25, 2013, 06:26



Название: Эмуляция мыши
Отправлено: GPPsoft от Декабрь 25, 2013, 06:26
Здравстуйте. Как выполнить симуляцию нажатия клавиши мыши в системе Mac OS? В Windows эмулирую с помощью функций WIN API mouse_event. Может есть какое-то кроссплатформеное решение? Заранее спасибо за ответ!


Название: Re: Эмуляция мыши
Отправлено: Serr500 от Декабрь 25, 2013, 07:53
Как выполнить симуляцию нажатия клавиши мыши в системе Mac OS?
CGEventCreateMouseEvent?

Может есть какое-то кроссплатформеное решение?
Не слыхал про такое...


Название: Re: Эмуляция мыши
Отправлено: GPPsoft от Декабрь 25, 2013, 08:02
Как выполнить симуляцию нажатия клавиши мыши в системе Mac OS?
CGEventCreateMouseEvent?

Может есть какое-то кроссплатформеное решение?
Не слыхал про такое...
Спасибо. Но как воспользоваться ей? Что подключить нужно? Еще раз спасибо.


Название: Re: Эмуляция мыши
Отправлено: GPPsoft от Декабрь 25, 2013, 08:45
Вроде что-то нашел, но не пойму почему не компилируется, вылетает ошибка symbol(s) not found for architecture x86_64.

Код:
    Qt::MouseButton button=Qt::RightButton;
    QPoint mousePos = QCursor::pos();
    CGEventType eventType = button == Qt::LeftButton ? kCGEventLeftMouseDown :
                            button == Qt::RightButton ? kCGEventRightMouseDown:
                            button == Qt::MidButton ? kCGEventOtherMouseDown : kCGEventNull;
    CGEventRef event = CGEventCreateMouseEvent(NULL, eventType, CGPointMake(mousePos.x(), mousePos.y()), 0);
//        //GT_CHECK(event != NULL, "Can't create event");

    CGEventPost(kCGSessionEventTap, event);
//        //GTGlobals::sleep(0); // don't touch, it's Mac's magic
    CFRelease(event);


Название: Re: Эмуляция мыши
Отправлено: Serr500 от Декабрь 25, 2013, 08:52
Вот этого не знаю. Возможно, какой-то библиотеки линкеру не хватает.


Название: Re: Эмуляция мыши
Отправлено: GPPsoft от Декабрь 25, 2013, 08:55
Вот этого не знаю. Возможно, какой-то библиотеки линкеру не хватает.
Узнать бы чего не хватает :(


Название: Re: Эмуляция мыши
Отправлено: GPPsoft от Декабрь 25, 2013, 10:14
Нашел!
Код:
unix {
    !macx {
    LIBS += -lXtst
    }
    macx {
    QMAKE_LFLAGS += -framework ApplicationServices
    }
}