![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить HWND окна? [D4, D5, D6, Win95/98, NT4, Win2k]
Vlad_NOJB © (2002-01-20 10:27:00)Приветствую всех знатоков Delphi!
Прошу Вас помочь в решении следующей проблемы.
Мне необходимо получить HWND окна. Обычно я это делал ф-цией FindWindow, но в данном случае не работает.
Дело в том, что программа HWND, которой я пытаюсь получить, при каждом запуске меняет класс окна.
Как быть? Может кто-то сталкивался с подобными задачами?
Заранее спасибо!
Vlad_NOJB (2002-01-20 15:18:00) [1]Если создаётся какой-то новый класс, то наверно где-то в системе он будет прописан.
А насчётGetWindowProcessIdнадо попробовать. О результатах сообщу. Спасибо за помощь!
Алексей Петров (2002-01-20 11:54:00) [2]> Vlad_NOJB (20.01.02 11:22)
> Ни откуда нельзя прочитать чтоза класс создала программа?
А на русский сможешь перевести?
Программа может создать (и почти всегда создает) много классов окон.
Если ты сам процесс запускаешь - то тебе его ProcessId известен - с помощью GetWindowProcessId можешь выбрать все его окошки.
Vlad_NOJB (2002-01-20 11:22:00) [3]Да, я знаю что это за окно и знаю признаки по которым однозначно можно определить, что это нужное мне окно. Причём эту программу я запускаю из своей программы. Ни откуда нельзя прочитать чтоза класс создала программа?
Алексей Петров (2002-01-20 11:13:00) [4]А ты сам знаешь, для какого окна тебе нужен HWND?
Т.е. сможешь определить набор формальных признаков, по которым можно сказать "это то самое окно".
Если нет - проблема не решается, ну а если да - воспользуйся, например функцией EnumWindows для перебора всех и выбирай нужное.