Russian Qt Forum
Ноябрь 24, 2024, 05:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Эмуляция мыши  (Прочитано 3703 раз)
GPPsoft
Гость
« : Декабрь 25, 2013, 06:26 »

Здравстуйте. Как выполнить симуляцию нажатия клавиши мыши в системе Mac OS? В Windows эмулирую с помощью функций WIN API mouse_event. Может есть какое-то кроссплатформеное решение? Заранее спасибо за ответ!
Записан
Serr500
Гость
« Ответ #1 : Декабрь 25, 2013, 07:53 »

Как выполнить симуляцию нажатия клавиши мыши в системе Mac OS?
CGEventCreateMouseEvent?

Может есть какое-то кроссплатформеное решение?
Не слыхал про такое...
Записан
GPPsoft
Гость
« Ответ #2 : Декабрь 25, 2013, 08:02 »

Как выполнить симуляцию нажатия клавиши мыши в системе Mac OS?
CGEventCreateMouseEvent?

Может есть какое-то кроссплатформеное решение?
Не слыхал про такое...
Спасибо. Но как воспользоваться ей? Что подключить нужно? Еще раз спасибо.
Записан
GPPsoft
Гость
« Ответ #3 : Декабрь 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);
Записан
Serr500
Гость
« Ответ #4 : Декабрь 25, 2013, 08:52 »

Вот этого не знаю. Возможно, какой-то библиотеки линкеру не хватает.
Записан
GPPsoft
Гость
« Ответ #5 : Декабрь 25, 2013, 08:55 »

Вот этого не знаю. Возможно, какой-то библиотеки линкеру не хватает.
Узнать бы чего не хватает Грустный
Записан
GPPsoft
Гость
« Ответ #6 : Декабрь 25, 2013, 10:14 »

Нашел!
Код:
unix {
    !macx {
    LIBS += -lXtst
    }
    macx {
    QMAKE_LFLAGS += -framework ApplicationServices
    }
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 20.