Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Найти все Окна


Автор: mniip 31.5.2011, 16:14
Помогите, как найти все открытые окна и как получить информацию об полученном объекте?
Пробовал перебирать HWND и подставлять в IsWindow. Не подходит, IsWindow определяет присутстие фокуса ввода (у TEdit он например есть а у TImage нету).
Также это очень медленно
Да даже если найду HWND то что мне с этим HWND делать?
 Я так понимаю это какието внутренние функции Windows

Автор: Snowy 31.5.2011, 16:33
А какого рода информация нужна? GetWindowInfo?
Перебрать окна: EnumWindows, EnumChildWindows
TImage не IsWindow, т.к. не является окном.

Автор: mniip 31.5.2011, 16:42
Цитата(Snowy @ 31.5.2011,  16:33)

TImage не IsWindow, т.к. не является окном.

Ну а я что написал?

Автор: Snowy 31.5.2011, 16:54
А ты написал, что тебе нужны окна

Автор: mniip 31.5.2011, 16:59
Мне нужны окна всмысле TForm и потомки. Можно ето как нибудь отследить?
И найти мне нужно его свойства как в инспекторе обектов.
Через GetWindowInfo я могу найти только место и размер

Автор: Snowy 31.5.2011, 17:21
В своём проекте? - Components и ComponentCount
В чужом проекте? - никак.

Автор: mniip 31.5.2011, 17:41
A как taskman и SystemExplorer работают???

Автор: Snowy 31.5.2011, 17:55
Можно получить характеристики окна, как GetWindowInfo, GetWindowText, RealGetWindowClass, например.
Что именно тебя интересует - ХЗ.
Получить проперти компонента из сторонней программы нельзя.
А такие вещи, как класс окна, размеры, рамка, цвет, шрифт, текст - это ради бога.

Автор: THandle 1.6.2011, 08:43
mniip, посмотри вот это: http://wmsdk.com/2010/02/01/vcl-components-re-mastering-part-one/
Но это все весьма сложно..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)