Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
2-1257157125
Rendal
2009-11-02 13:18
2009.12.20
Удаление ключа из реестра


2-1257319865
Андрей1982
2009-11-04 10:31
2009.12.20
Как обменять местами колонки в ListView?


2-1256914960
Ivan
2009-10-30 18:02
2009.12.20
Список названий сетевых соединений


2-1257157663
Сергей
2009-11-02 13:27
2009.12.20
Как передать данные в CRReport.PrintOut


1-1229474391
Jack
2008-12-17 03:39
2009.12.20
Использование TCLIENTDATASET без провайдера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский