2010-02-01 2 views
1

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

ответ

2

Взгляните на Inter-Process Communication in Qt. Самый кросс-платформенный способ - использовать сокет.

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

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

1

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

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

+0

спасибо. Да, я пишу оба, и я использую kubuntu. Причина, по которой я хотел использовать события, заключалась в том, что я просто пытался имитировать, как программа будет запускаться после ее запуска на своей целевой – Ayeayeron

Смежные вопросы