Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с окном другого приложения [D5, WinXP]


Afonya ©   (2008-12-17 18:27:00) 

Добрый день, мастера!
Подскажите, пожалуйста, дельным советом, а лучче скриптом :-)
  Есть сорцы приложения. (назовем его А1)
Необходимо, вызвать определенный метод головного окна, из стороннего приложения, например из функции длл-ки. А теперь самое "сложное"... в исходниках А1 ничего не менять.
  Как я вижу решение этой проблемы: написать с использованием сорцов А1 длл-ку, которая знает тип главной формы и, соответственно, все ее методы и свойства. Необходимо только подключиться к главной форме А1 (передать хендл окна) и тогда для длл-ки открывается доступ ко всем методам и свойствам всей формы. Но вот как это сделать? Может кто-нибудь делал хоть что-то поодобное?


KSergey   (2008-12-19 09:38:00) [1]

> Германн ©   (19.12.08 01:32) [8]
> Изврат. Если есть исходники.

"Нормальные герои всегда идут в обход"
"Сами создадим себе сложности и будет их героически преодолевать"


Германн   (2008-12-19 01:32:00) [2]


> в исходниках А1 ничего не менять.

Изврат. Если есть исходники.


Leonid Troyanovsky   (2008-12-18 23:24:00) [3]


> Afonya   (17.12.08 18:27)  

>   Как я вижу решение этой проблемы: написать с использованием
> сорцов А1 длл-ку, которая знает тип главной формы и, соответственно,
>  все ее методы и свойства. Необходимо только подключиться
> к главной форме А1 (передать хендл окна) и тогда для длл-
> ки открывается доступ ко всем методам и свойствам всей формы.

Это заблуждение.
У приложения и длл разные Application, Screen, PopupMenues &etc
Кроме того, разные RTTI & etc.

--
Regards, LVT.


Сергей М.   (2008-12-18 20:32:00) [4]

А как твоя dll окажется в адр.пространстве процесса приложения А1 ?


Afonya   (2008-12-18 17:25:00) [5]

Сергей М. а можно небольшой примерчик?
Ну хотябы приложение с главной формой.
А длл-ка вызывает какой-то метод этой главной формы...


Германн   (2008-12-18 00:39:00) [6]


> Eraser ©   (17.12.08 20:57) [2]
>
> > [1] Сергей М. ©   (17.12.08 20:44)
>
>
> > 2. "Головное" окно VCL-приложения - это окно размером
> 0х0,
> > контролируемое объектом Application, а не то что ты думаешь.
>
>
> начиная с Д2007 это немного по-другому, в большенстве случаев.
>  там та часть VCL что за менеджмент окнами отвечает переписана
> полностью. в Д2009 в прочем все переписано почти полностью
> еще раз.
>

Интересно. Ссылки какие-нибудь можешь дать без лишнего напряга? Надо бы нашим Землян..., пардон нашим программистам дать ознакомиться.


Сергей М.   (2008-12-17 21:56:00) [7]


> Eraser ©   (17.12.08 20:57) [2]


Не буду возражать.
Но автор явно упомянул Д5, значит вплоть до Д7 включительно это будет верным.


Eraser   (2008-12-17 20:57:00) [8]

> [1] Сергей М. ©   (17.12.08 20:44)


> 2. "Головное" окно VCL-приложения - это окно размером 0х0,
> контролируемое объектом Application, а не то что ты думаешь.

начиная с Д2007 это немного по-другому, в большенстве случаев. там та часть VCL что за менеджмент окнами отвечает переписана полностью. в Д2009 в прочем все переписано почти полностью еще раз.


Сергей М.   (2008-12-17 20:44:00) [9]


> метод головного окна


1. У окна нет методов. Методы есть у формы.
2. "Головное" окно VCL-приложения - это окно размером 0х0, контролируемое объектом Application, а не то что ты думаешь.
3.  MainForm - это основная форма, а не "головное окно". Главное окно VCL-приложения и окно основной форма - это два совершенно разных окна.
4. Твоя идея возможна как минимум при условии, что  dll собрана в той же версии Делфи, в которой было собрано приложение.


Наверх

Титульная страница Поиск, карта сайта Написать письмо