|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.08.2010, 01:59 | #1 |
Регистрация: 20.08.2010
Сообщений: 3
|
Зачитать заголовок формы владельца из длл
Привет.
Есть программа стороннего разработчика, которая подключает длл, как плагины. Когда мою длл подключают, приложение вызывает функцию MyDll_Init() без параметров. Как мне внутри этой процедуры (с самой длл) узнать текст заголовка (Caption) главного окна приложения, которое эту длл вызвало. Мне необходимо его зачитать, т.к. там записан уникальный номер пользователя. И мне его необходимо узнать, для дальнейшей работы. |
21.08.2010, 17:26 | #2 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
хрен знат, можт местные гуры закидают меня сцаными тряпками, но я думаю можна так:
посмотреть таки что за класс у окна, заголовок которого надоть считывать и считывать с помощью функи GetWindowText или SendMessage с параметром считывания текста, если класс настолько стандартен, что щемит в паху, можно по имени процесса (перечисляя данные классы) вычислить PID, потом перечисислять все хендлы начиная с 0 в поисках нужного класса, при совпадении сравнивать ПИД, на соответствие "нашего поциента" (все вышесказанное было написано из уныния и отчаяния(в состоянии пьяного коматоза), и не претендует ни на что)
Нет, ну правда..
|
21.08.2010, 21:17 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
поправлю, ПИД мы итак знаем, мы же внутри процесса
а далее находим нужное окно по классу и ПИД, и все. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
21.08.2010, 22:54 | #4 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
а, ну да, солидарен а что реально чтоль проще никак чем этот бред?
Нет, ну правда..
|
22.08.2010, 05:56 | #5 |
Регистрация: 20.08.2010
Сообщений: 3
|
|
22.08.2010, 20:45 | #6 | |
Регистрация: 20.08.2010
Сообщений: 3
|
Цитата:
1 - Считал ид процесса 2 - перебрал все формы через Enum..., чтобы найти нужный класс и ид но это несколько грубый вариант. по идее должен быть способ более изящный. когда зная ид процесса, запрашиваешь формы только этого процесса. Вот этот способ я и ищу. Наверно можно тоже через Енум... но только как... |
|
25.08.2010, 18:44 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вы все верно сделали, системе GDI по сути пофиг какому процессу окно принадлежит.
так что ищем окна, а потом уже определяем, то или не то. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как изменить заголовок формы? | -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 |