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

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

как в DLL узнать хендел формы [D7, XP]


4IZH ©   (2006-07-07 21:56:00) 

привет народ
скажите как в DLL узнать хендел формы приложения, в адресное пространство которого эта DLL загружена


4IZH   (2006-07-16 22:00:00) [1]

to begin end

передать из проги установившей хук не выдет, так как после подгрузки в чужое А .П.   все переменные в DLL обнуляются


Ketmar   (2006-07-15 16:38:00) [2]

>redlord   (15.07.06 14:08) [8]
ФОРМЫ есть в Delphi и VB. а если там чистый WinAPI, например? там не формы, а окна. EnumWindows/EnumCHildWindows. и угадывай.


DrPass   (2006-07-15 15:30:00) [3]


> Правда, почему приложение вместо того, чтобы сообщить хэндл
> окна библиотеке (см. [2]), заставляет её заниматься этим
> поиском, не совсем ясно.

Подсказываю - приложение может быть написано посторонним разработчиком, который не предполагал того, что задумал товарищ 4IZH


begin...end   (2006-07-15 14:42:00) [4]

> redlord   (15.07.06 14:08) [8]

> данная DLL будет загружена тока в нужною мне прогу так как
> при установке хука указан ее ID

ОК, только при установке хука указывается ID не проги, а потока. А раз так, то перечислить родительские окошки, связанные с этим потоком, можно с помощью EnumThreadWindows (которую можно вызвать и из DLL). Среди них и можно будет найти нужное окно. Правда, почему приложение вместо того, чтобы сообщить хэндл окна библиотеке (см. [2]), заставляет её заниматься этим поиском, не совсем ясно.


redlord   (2006-07-15 14:08:00) [5]

to begin  end

данная DLL будет загружена тока в нужною мне прогу так как при установке хука указан ее ID

to ketmar

нужен хендел основной формы приложения. на котором расположены
все контролы управления


Ketmar   (2006-07-08 13:16:00) [6]

а если там не формы, а просто окна? да ещё и во множественном числе? какое именно надо?


begin...end   (2006-07-08 08:21:00) [7]

> 4IZH   (07.07.06 21:56) [0]

А что будем делать, если DLL окажется загруженной в адресные пространства НЕСКОЛЬКИХ приложений?


4IZH   (2006-07-07 22:31:00) [8]

в моем случае да есть


Virgo_Style   (2006-07-07 22:24:00) [9]

а у той программы точно есть формы?


redlord   (2006-07-07 22:18:00) [10]

нет .
эта DLL подгружается к чужой проге путем установки хука ,
и нужно получить указатель на форму той проги на которую установлен хук


parovoZZ   (2006-07-07 22:09:00) [11]

Передавай в функции. Например, при инициализации dll. А если exe не твоё, то извини.....


PSPF2003   (2006-07-07 22:03:00) [12]

Ты имеешь в веду ту форму из которой была вызвана DLL?


Наверх

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