Qt: Как отправить событие в операционную / оконную систему? - PullRequest
1 голос
/ 01 февраля 2010

Я хочу создать событие в одном приложении Qt, которое может быть обнаружено отдельным приложением Qt, работающим в одно и то же время. Обычная функция sendevent требует, чтобы вы называли объект, который его получит, но я не могу его использовать, я хочу, чтобы он походил на событие нажатия клавиатуры, которое фильтрует все открытые программы в ОС. Кто-нибудь знает как это сделать? спасибо

Ответы [ 2 ]

2 голосов
/ 01 февраля 2010

Взгляните на Межпроцессное взаимодействие в Qt .Наиболее кроссплатформенный способ - использовать сокет.

Совместно используемая память также является опцией, но для событий я бы порекомендовал сокет, к которому затем можно прикрепить слоты на принимающей стороне, чтобы обрабатывать его как локальное событие.

Редактировать: Извините, яКажется, я пропустил реальную точку зрения, когда я прочитал другой ответ, вы хотите создать что-то вроде клавиатурного шпиона, который записывает удары в любом месте.Не уверен насчет этого.

1 голос
/ 01 февраля 2010

Прежде всего - это будет далеко от кроссплатформенности и не сможет использовать Qt для этой конкретной функции. Итак, ответьте на вопрос, на какую ОС вы нацелены?

Во-вторых, вы пишете оба приложения? Почему бы не передать свои «события» через D-bus (только UNIX ...) или даже через XMLRPC (http://doc.libqxt.org/tip/qxtrpcservice.html),) и избежать всего фальсифицированного события?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...