Название: Эмуляция клика мыши Отправлено: mcrads от Декабрь 15, 2009, 09:14 Подскажите пожалуйста, как проэмулировать клик мышки на любой области экрана даже если приложение работает в фоновом режиме??? очень нужно...
QMouseEvent не пойму как в данном случае использовать просто. Название: Re: Эмуляция клика мыши Отправлено: Павел_F. от Декабрь 15, 2009, 10:46 Цитата: Из Assistant QMouseEvent::QMouseEvent ( Type type, const QPoint & position, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers ) что там не понятно?Constructs a mouse event object. The type parameter must be one of QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick, or QEvent::MouseMove. The position is the mouse cursor's position relative to the receiving widget. The button that caused the event is given as a value from the Qt::MouseButton enum. If the event type is MouseMove, the appropriate button for this event is Qt::NoButton. The mouse and keyboard states at the time of the event are specified by buttons and modifiers. The globalPos() is initialized to QCursor::pos(), which may not be appropriate. Use the other constructor to specify the global position explicitly. Делаеш сам QMouseEvent. прямо в конструкторе задаеш какой именно, где( относительно целевого виджета), состояник кнопок мыши. И отправляеш его в нужный тебе виджет. Название: Re: Эмуляция клика мыши Отправлено: spectre71 от Декабрь 15, 2009, 10:52 Подскажите пожалуйста, как проэмулировать клик мышки на любой области экрана даже если приложение работает в фоновом режиме??? очень нужно... QMouseEvent не пойму как в данном случае использовать просто. что там не понятно? Делаеш сам QMouseEvent. прямо в конструкторе задаеш какой именно, где( относительно целевого виджета), состояник кнопок мыши. И отправляеш его в нужный тебе виджет. Речь не об отправке события QMouseEvent виджету, а об эмуляции нажатия мыши. Похоже задача решается только черем нативные вызовы. Название: Re: Эмуляция клика мыши Отправлено: lit-uriy от Декабрь 15, 2009, 10:59 статья в Вики - Как программно симулировать события от "мышки"? (http://prog.org.ru/wiki/index.php?title=Frequently_Asked_Questions#.D0.9A.D0.B0.D0.BA_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.BD.D0.BE_.D1.81.D0.B8.D0.BC.D1.83.D0.BB.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D1.82.D1.8C_.D1.81.D0.BE.D0.B1.D1.8B.D1.82.D0.B8.D1.8F_.D0.BE.D1.82_.22.D0.BC.D1.8B.D1.88.D0.BA.D0.B8.22.3F)
подойдёт? Название: Re: Эмуляция клика мыши Отправлено: spectre71 от Декабрь 15, 2009, 11:05 статья в Вики - Как программно симулировать события от "мышки"? (http://prog.org.ru/wiki/index.php?title=Frequently_Asked_Questions#.D0.9A.D0.B0.D0.BA_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.BD.D0.BE_.D1.81.D0.B8.D0.BC.D1.83.D0.BB.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D1.82.D1.8C_.D1.81.D0.BE.D0.B1.D1.8B.D1.82.D0.B8.D1.8F_.D0.BE.D1.82_.22.D0.BC.D1.8B.D1.88.D0.BA.D0.B8.22.3F) подойдёт? Цитировать на любой области экрана Название: Re: Эмуляция клика мыши Отправлено: mcrads от Декабрь 15, 2009, 20:20 Прошу прощения =) спасибо =) помню что где то тут видел =) поиск по форуму ниче не дал =) а про вики забыл )
Название: Re: Эмуляция клика мыши Отправлено: mcrads от Декабрь 16, 2009, 00:16 Увы, Викевская не работает. в упор... ей хоть бы хны. мышкой она не кликает ни даже не шевелит если вызывать
Цитировать QMouseEvent *event = new QMouseEvent(QEvent::MouseMove, pos, Qt::NoButton, Qt::NoButton, Qt::NoModifier); вот так =((( не знаю что и делать... последний кусочек остался... в проге...QCoreApplication::postEvent(widget, event); Название: Re: Эмуляция клика мыши Отправлено: gmorgunov от Декабрь 16, 2009, 08:14 Можно вот так эмулировать клик левой мыши:
Код: #include <QtGui> Курсор в lineEdit встанет на переданную позицию. Название: Re: Эмуляция клика мыши Отправлено: mcrads от Декабрь 16, 2009, 17:49 Код: QDesktopWidget *desk = new QDesktopWidget; увы не работает =( почему? как сделать клик по любой области экрана? а не по виджетам приложения? но и по фоновым окнам? Название: Re: Эмуляция клика мыши Отправлено: Dendy от Декабрь 17, 2009, 01:18 По окнам других процессов? Боюсь тут Qt вам не поможет, задача сильно специфическая, к тому же платформозависима.
Название: Re: Эмуляция клика мыши Отправлено: mcrads от Декабрь 20, 2009, 09:01 И тем не менее у меня получилось =)
Название: Re: Эмуляция клика мыши Отправлено: Marat(Qt) от Декабрь 20, 2009, 09:44 И тем не менее у меня получилось =) радует что решение все-таки есть, только вот как оно выглядет не расскажете?Название: Re: Эмуляция клика мыши Отправлено: mcrads от Декабрь 21, 2009, 18:43 Решение пришлось все таки привязать к платформе... по сути.... так что выделив все это безобразие #ifndef #endif пишем для каждой платформы свой кусочек кода.....
Название: Re: Эмуляция клика мыши Отправлено: Alex Custov от Декабрь 21, 2009, 20:32 только через платфорозависимый код. Под Linux можно просмотреть исходники xte:
http://packages.debian.org/lenny/xautomation Название: Re: Эмуляция клика мыши Отправлено: wanick от Май 12, 2011, 13:31 На днях предо мной встала такая же задача постучал в аську Sickfar, и он любезно поделился решением
выкладываю для хстори, вдруг кому еще понадобится Код: #ifdef Q_WS_WIN Название: Re: Эмуляция клика мыши Отправлено: keria от Сентябрь 15, 2011, 22:13 Подскажите пожалуйста, как проэмулировать клик мышки на любой области экрана даже если приложение работает в фоновом режиме??? очень нужно... QMouseEvent не пойму как в данном случае использовать просто. Здравствуйте уважаемые форумчане. Нашел эту тему в поисковике. Я не программер, но передо мной стоит не тривиальная задача - сэмулировать движение и клик мышью в браузере в фоновом режиме. Возможно ли это впринципе ? Эмуляция должна обходить вот эту систему http://metrika.yandex.ru/promo/webvisor/. Система записывает и показывает движение мышью и другие действия пользователя. Мне нужно совершить движение и клик в фоновом режиме, но чтобы вебвизор увидел, что движение и клик есть. Если такое решение принципиально возможно готов обсудить стоимость его реализации. Название: Re: Эмуляция клика мыши Отправлено: LisandreL от Сентябрь 15, 2011, 22:30 Что вы понимаете под фоновым режимом? Как должны осуществляться движения - с вашим управлением или по записанной программе?
AutoIt на виртуалке? Название: Re: Эмуляция клика мыши Отправлено: keria от Сентябрь 17, 2011, 11:03 Что вы понимаете под фоновым режимом? Как должны осуществляться движения - с вашим управлением или по записанной программе? AutoIt на виртуалке? К большому сожалению я не программист и не понимаю многих терминов, но мне очень нужен результат и готов его оплатить. Под фоновым режимом понимаю, следующее: Юзер работает в браузере (или не работает). Независимо от его действий открывается невидимое для него окно браузера и там совершаются действия (набор с клавиатуры, переход по ссылке, по записанной программе). Главное, чтобы эти действия были учтены программами типо http://metrika.yandex.ru/promo/webvisor/. Т.е как будто это реальный юзер подвигал мышью и нажал на ссылку. |