Лучший способ сделать это - заставить вашу программу работать с такой средой доступности, как ATK (используется в приложениях GTK), а затем использовать ее для запроса строк, как для программы чтения с экрана.перевод текста в речь.Это подход, принятый в Linux Desktop Testing Project и dogtail средах тестирования.Вы получаете бонус за использование существующего, хорошо протестированного кода и повышение удобства использования вашего приложения пользователями-инвалидами (как того требуют законы, такие как Закон об американцах-инвалидах в США и аналогичные законы во многих других странах).
Если ваше приложение использует современные рамки шрифтов, такие как libXft2, это может быть ваш единственный выбор, поскольку эти строки находятся только в клиентском приложении, а не на X-сервере, и преобразование символов в растровые изображения выполняется на клиенте.(Если ваш текст является сглаженным, он должен использовать их вместо устаревших API X11.)
Даже с устаревшими API X11 X-сервер не сохраняет строки, если преобразование текста в растровое изображение выполнено.готово, так что нет хорошего способа запросить их, кроме как перехватить их в этом случае.