The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Управление графическим интерфейсом другого приложения"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"Управление графическим интерфейсом другого приложения"  +/
Сообщение от saker (ok) on 23-Сен-11, 12:12 
Собственно задача следующая:
Существует два приложения, использующих графический интерфейс. Одно написано на 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
В результате в консоли пустой список и нулевой указатель, т.е. ничего не получилось.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Управление графическим интерфейсом другого приложения"  +/
Сообщение от gpl77 (ok) on 23-Сен-11, 18:54 
> Собственно задача следующая:
> Существует два приложения, использующих графический интерфейс. Одно написано на Python
> c использованием wxWidgets, второе на С++ и Qt. Существует ли возможность
> управлять графическим интерфейсом этих двух приложений, из третьего, т.е. имитировать
> нажатие пользователя на различные кнопки, вводить текст в текстовые поля и
> т.д.

можно. В XLib есть XSendEvent.
получаете список окошек, выбираете свое и пуляете туда что угодно.
как сделать через Qt - не знаю.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Управление графическим интерфейсом другого приложения"  +/
Сообщение от StreSS on 24-Сен-11, 15:07 
Через Qt тяжело и долго. Как и сказал предыдущий оратор Xlib (посмотри код xwininfo), для поиска. Для отправки сообщений XSendEvent (кажется).
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Управление графическим интерфейсом другого приложения"  +/
Сообщение от saker (ok) on 26-Сен-11, 11:44 
> Через Qt тяжело и долго. Как и сказал предыдущий оратор Xlib (посмотри
> код xwininfo), для поиска. Для отправки сообщений XSendEvent (кажется).

Большое спасибо откликнувшимся. Реализовал через Xlib.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру