2010-09-14 1 views
2

Чтобы поцарапать личный зуд, я пишу что-то вроде перекрестка между символьной картой и экранной клавиатурой. Когда пользователь выбирает символ, я хотел бы вставить его в другое приложение, в частности, приложение, которое затем получит фокус, если мое приложение будет закрыто. Есть какой-либо способ сделать это? Прямо сейчас, я обдумываю это, просто помещая персонажа в буфер обмена и заканчивая, оставляя пользователя нажимать пасту в другом приложении, но использование будет гораздо более упорядоченным, если бы я мог просто вставить текст программно.Как вставить текст в другое приложение?

Я делаю это в GTK и ожидаю запустить его только в Linux. Но кросс-платформенные решения также приветствуются, и если GTK не сможет этого сделать, но некоторые другие инструменты, я с радостью переключусь.

ответ

0

Похоже, вы должны использовать libwnck, которая является связанной с GTK библиотекой, которая позволяет вам управлять окнами на рабочем столе. Документация немного разрежена, но функция wnck_screen_get_previously_active_window() кажется многообещающей.

С WnckWindow вы можете получить идентификатор окна X, и, возможно, оттуда вы можете использовать библиотеки X для отправки вставки сообщения (или даже отправить ему событие нажатия клавиши «Ctrl-V»), возможно, с XSendEvent().

Очень хороший вопрос, кстати. Хотелось бы, чтобы я мог более точно ответить на него.