интеграция чужого приложения

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

интеграция чужого приложения

Сообщение mirk » 28.05.2010 10:56:47

Интересен механизм интеграции чужого приложения в свое.
Примеры:
1. PuTTY Connection Manager содержит в себе PuTTY
2. mRemote содержит в себе PuTTY
Как подобное делается?
mirk
постоялец
 
Сообщения: 317
Зарегистрирован: 24.09.2007 10:03:39

Re: интеграция чужого приложения

Сообщение Odyssey » 28.05.2010 11:56:31

Если имеется в виду встраивание "консольных" приложений, то вот это может помочь:
http://wiki.lazarus.freepascal.org/Exec ... rograms/ru
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: интеграция чужого приложения

Сообщение ev » 28.05.2010 12:05:15

под виндами делается просто
1. любым методом (например TProcess) запускаешь нужное приложение и устанавливаешь нужные параметры (не показывать заголовок, скрыть окно и т.п.)
2. получаешь хэндл нужного окна (hWnd)
3. перекидываешь окно к себе в нужный контрол (form.Panel)

п. 1 и 2 вроде совсем простые и вопросов быть не должно
п.3 решается тоже просто
Код: Выделить всё
  windows.SetParent(hWnd, form.Panel.Handle);
  windows.SetWindowLong(hWnd, 0, WS_VISIBLE);
  windows.ShowWindow(hWnd, SW_SHOWMAXIMIZED);
ev
долгожитель
 
Сообщения: 1775
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: интеграция чужого приложения

Сообщение mirk » 28.05.2010 12:27:41

У TProcess нет списка хэндлов окон? Получается, что надо по ProcessID Узнать хэндл окна? Как это лучше сделать (не хочется делать перебор всех окон в системе)?
Как такое делать под другими ОС?
mirk
постоялец
 
Сообщения: 317
Зарегистрирован: 24.09.2007 10:03:39


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 221

Рейтинг@Mail.ru