| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > DDE, OLE и т.п. |
| Автор: Vit 9.12.2004, 18:54 |
| В Windows очень легко реализуется например такая штука - я в окне своего приложения могу как контрол использовать окно Word, Excel и т.п. Как сделать такое под Linux? В частности мне надо в окно своего приложения засунуть например kwrite, не просто его открыть, а именно как контрол моего окна... |
| Автор: Sun 10.12.2004, 16:30 |
| Механизм OLE в Linux не поддерживается и поэтому такие штуки штатными средствами реализовать IMHO нельзя. Что касается DDE, то в Linux поддерживается shared memory - именованная область памяти, доступная всем процессам - практически один к одному DDE. Что касается внедрения окна чужого приложения в свое - думаю это возможно, но надо крепко подумать |
| Автор: chipset 10.12.2004, 16:48 | ||
Окно опенофиса допустим ты без хаков не засунешь.. Офис расшарил своё окно как компонент COM, поэтому ты можешь его юзать.. |
| Автор: Vit 13.12.2004, 18:18 | ||||
Да ну? Можно и через DDE, можно посылать сообщения и окну и любым его элементам, можно перехавтывать сообщения к окну и от окна... Много чего можно, какой-там хак... Если виндовое приложение не поддерживает COM то это ещё не значит что какие -то хаки нужны, COM была придумана в 95 винде, а в 3.1 или в 2.0 тоже можно было управлять чужими приложениями без проблем...
Это не то! Совсем не то... чужую память читать конечно можно, только толку в этом никакого... |
| Автор: Sun 14.12.2004, 11:58 |
| В Linux, как и в Unix есть следующие способы взаимодействия процессов: - неименованные каналы (pipes) Можно организовать взаимодествие между дочерним и отцовским процессом; - именованные каналы (FIFO) Почти тоже что и pipe, но позволяют взаимодействовать любым процессам, так как доступ к каналу идет по его имени; - разделяемая память (shared memory); - сокеты; - файлы; Каких либо других способов взаимодествия процессов с обменом данными в Linux, насколько я знаю, нет. Так что нужно исходить из того что есть. |
| Автор: Mad 14.12.2004, 15:13 |
| Vit Есть попытки сделать чтото на подобии COM в некоторых оконых менеджерах (GNOME и KDE). Посмотри описание API для них. |
| Автор: Sun 14.12.2004, 16:04 | ||
Да, есть такое дело. Называется KParts. http://developer.kde.org/documentation/tutorials/kparts/ Думаю это то что нужно |
| Автор: Vit 19.12.2004, 06:32 | ||
Смотрел, но их должна поддерживать вызываемая программа |
| Автор: Mad 19.12.2004, 13:54 |
| Vit А што ты хотел, например блокнот в форточке тоже COM не потдерживает |
| Автор: chipset 20.12.2004, 17:57 | ||
Что я и говорил. Если ты трогаешь чужую программу хотя она не предоставила интерфейсов - это уже хак. |