Форум: "Основная";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
ВнизРабота с окном другого приложения Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c