Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.20;
Скачать: CL | DM;

Вниз

Работа с окном другого приложения   Найти похожие ветки 

 
Afonya   (2008-12-17 18:27) [0]

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


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


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


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


 
Eraser ©   (2008-12-17 20:57) [2]

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


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

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


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


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


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


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


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

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


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

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


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

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


 
Leonid Troyanovsky ©   (2008-12-18 23:24) [7]


> Afonya   (17.12.08 18:27)  

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

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

--
Regards, LVT.


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


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

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


 
KSergey ©   (2008-12-19 09:38) [9]

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

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



Страницы: 1 вся ветка

Текущий архив: 2009.12.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1256283940
Соллиф
2009-10-23 11:45
2009.12.20
Вопрос по волоконно-оптической связи


2-1257182783
STD
2009-11-02 20:26
2009.12.20
Выполнить в фоне


2-1257339402
RWolf
2009-11-04 15:56
2009.12.20
Method Create hides virtual method


2-1257079212
petaywww
2009-11-01 15:40
2009.12.20
С помощью каких компонентов легче и правильней реализовать данную


15-1256122591
oldman
2009-10-21 14:56
2009.12.20
Сегодня 91 год Александу Аркадьевичу Гинзбургу