Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2010, 01:59   #1
esmaster
 
Регистрация: 20.08.2010
Сообщений: 3
По умолчанию Зачитать заголовок формы владельца из длл

Привет.

Есть программа стороннего разработчика, которая подключает длл, как плагины.

Когда мою длл подключают, приложение вызывает функцию MyDll_Init()
без параметров.

Как мне внутри этой процедуры (с самой длл) узнать текст заголовка (Caption) главного окна приложения, которое эту длл вызвало.

Мне необходимо его зачитать, т.к. там записан уникальный номер пользователя. И мне его необходимо узнать, для дальнейшей работы.
esmaster вне форума Ответить с цитированием
Старый 21.08.2010, 17:26   #2
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

хрен знат, можт местные гуры закидают меня сцаными тряпками, но я думаю можна так:
посмотреть таки что за класс у окна, заголовок которого надоть считывать и считывать с помощью функи GetWindowText или SendMessage с параметром считывания текста, если класс настолько стандартен, что щемит в паху, можно по имени процесса (перечисляя данные классы) вычислить PID, потом перечисислять все хендлы начиная с 0 в поисках нужного класса, при совпадении сравнивать ПИД, на соответствие "нашего поциента" (все вышесказанное было написано из уныния и отчаяния(в состоянии пьяного коматоза), и не претендует ни на что)
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 21.08.2010, 21:17   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

поправлю, ПИД мы итак знаем, мы же внутри процесса
а далее находим нужное окно по классу и ПИД, и все.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2010, 22:54   #4
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
поправлю, ПИД мы итак знаем, мы же внутри процесса
а далее находим нужное окно по классу и ПИД, и все.
а, ну да, солидарен а что реально чтоль проще никак чем этот бред?
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 22.08.2010, 05:56   #5
esmaster
 
Регистрация: 20.08.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
поправлю, ПИД мы итак знаем, мы же внутри процесса
а далее находим нужное окно по классу и ПИД, и все.
А можно более подробно? а то я не делал этого из длл, и несколько теряюсь...
esmaster вне форума Ответить с цитированием
Старый 22.08.2010, 20:45   #6
esmaster
 
Регистрация: 20.08.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
поправлю, ПИД мы итак знаем, мы же внутри процесса
а далее находим нужное окно по классу и ПИД, и все.
Я сделал конечно несколько грубым методом.

1 - Считал ид процесса
2 - перебрал все формы через Enum..., чтобы найти нужный класс и ид

но это несколько грубый вариант. по идее должен быть способ более изящный. когда зная ид процесса, запрашиваешь формы только этого процесса. Вот этот способ я и ищу. Наверно можно тоже через Енум... но только как...
esmaster вне форума Ответить с цитированием
Старый 25.08.2010, 18:44   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы все верно сделали, системе GDI по сути пофиг какому процессу окно принадлежит.
так что ищем окна, а потом уже определяем, то или не то.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить заголовок формы? -ushёl- Помощь студентам 10 14.03.2010 21:20
Заголовок Child формы имеет цвет неактивной формы, хотя форма активна? PrimaryPro Общие вопросы Delphi 0 12.03.2010 11:12
Редактирование полей БД из формы хранящейся в ДЛЛ ? spamer БД в Delphi 5 15.11.2009 22:40
Про формы в длл Altera Общие вопросы Delphi 2 24.06.2008 22:19
Определение автора(владельца) запроса в Mysql Квэнди БД в Delphi 1 15.10.2007 16:00