![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с окном другого приложения [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 собрана в той же версии Делфи, в которой было собрано приложение.