LINUX.ORG.RU

вставка/получение текста из xwindow, посыл нажатия клавиш


0

1

Посоветуйте, пожалуйста, чем и как (лучше при помощи уже существующих консольных программ, но можно и при помощи любых других средств) можно взаимодействовать в xwindow (окном) для получения из его едитов (и, желательно, из любых других полей) текста и вставки текста, а также посылать в окно нажатие кнопок клавиатуры (особенно enter, alt+f4, esc). Как можно посылать ивент на клик button (или любого другого элемента) на форме окна? Насколько я понял, отдельные объекты окна имеют свои собственные указатели (судя по xwininfo), к которым можно обратиться вообще никак не ссылая на само окно. Заранее спасибо за любую инфу по теме. (и не бить палками, я не разработчик из X.org, чтобы всё знать)

Т.е. вам нужно работать с окном на уровне контролов? В таком случае полноценного решения вы не найдёте, как минимум из-за разнообразия тулкитов.

Частично проблему решает это - http://ldtp.freedesktop.org/wiki/

snizovtsev ★★★★★
()
Ответ на: комментарий от zhuravlik

Причем не только нажатия клавиш, оказывается. xdotool lets you programatically (or manually) simulate keyboard input and mouse activity, move and resize windows, etc.

zhuravlik ★★★★
()
Ответ на: комментарий от zhuravlik

а как получить данные (текст) из определённого едита окна? в винде это делается достаточно просто, однако под линукс я так и не нашел метода :(

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от ktulhu666

Зачем тебе это? Может проще найти другой способ решить задачу?

geekless ★★
()
Ответ на: комментарий от ktulhu666

В винде да, отправка wm_gettextlength и затем wm_gettext. Если едит поддерживает эти сообщения, конечно, что бывает далеко не всегда, особенно в кастомных контролах. И тогда начинаются танцы с бубном и active accessibility. Если active accessibility (и другие accessibility-примочки) тоже не поддерживается - то единственным оставшимся вариантом является OCR.

В иксах теоретически это тулкитозависимо, однако есть попытки создать общий API.
Вместо ответа предлагаю вам погуглить на тему «gtk ui automation» или «gtk automated testing», и вы сами найдете решение вашей задачи, причем не только для gtk. Правда, если ваше приложение не поддерживает подобные API - остается только OCR. :(

zhuravlik ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.