Собственно задача следующая:
Существует два приложения, использующих графический интерфейс. Одно написано на Python c использованием wxWidgets, второе на С++ и Qt. Существует ли возможность управлять графическим интерфейсом этих двух приложений, из третьего, т.е. имитировать нажатие пользователя на различные кнопки, вводить текст в текстовые поля и т.д.Если существует то хотелось бы понять как. Пробовал использовать QDesktopWidget для получения указателя на главное окно одного из приложений:#include <QtGui>
#include <QApplication>int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDesktopWidget* deskt=a.desktop();
QList<QWidget*> list=deskt->findChildren<QWidget *>();
qDebug()<<list;
qDebug()<<deskt->find(8322895);
return 0;
}
Где число 8322895 реальный winId одного из приложений, полученный с помощью QWidget::winId () const
В результате в консоли пустой список и нулевой указатель, т.е. ничего не получилось.
> Собственно задача следующая:
> Существует два приложения, использующих графический интерфейс. Одно написано на Python
> c использованием wxWidgets, второе на С++ и Qt. Существует ли возможность
> управлять графическим интерфейсом этих двух приложений, из третьего, т.е. имитировать
> нажатие пользователя на различные кнопки, вводить текст в текстовые поля и
> т.д.можно. В XLib есть XSendEvent.
получаете список окошек, выбираете свое и пуляете туда что угодно.
как сделать через Qt - не знаю.
Через Qt тяжело и долго. Как и сказал предыдущий оратор Xlib (посмотри код xwininfo), для поиска. Для отправки сообщений XSendEvent (кажется).
> Через Qt тяжело и долго. Как и сказал предыдущий оратор Xlib (посмотри
> код xwininfo), для поиска. Для отправки сообщений XSendEvent (кажется).Большое спасибо откликнувшимся. Реализовал через Xlib.