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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2011, 13:55   #1
Kaban4ig
Пользователь
 
Регистрация: 10.12.2010
Сообщений: 32
По умолчанию Список окон

Всем привет. Как получить список всех открытых окон ? Запишу допустим я список этих окон в листбокс, как потом узнать у выбранного окна из списка его размеры?
Kaban4ig вне форума Ответить с цитированием
Старый 24.02.2011, 14:13   #2
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

вот тебе функции в помощь:
GetWindow - для поиска окон
GetWindowText - для получение заголовка окна
GetWindowRect - положение и размер окна.
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума Ответить с цитированием
Старый 24.02.2011, 14:30   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

EnumWindows еще можно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.02.2011, 16:15   #4
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Kaban4ig Посмотреть сообщение
Всем привет. Как получить список всех открытых окон ? Запишу допустим я список этих окон в листбокс, как потом узнать у выбранного окна из списка его размеры?
Получаем вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var wnd: hwnd;
    buff: array [0..127] of char;
begin
ListBox1.clear;
wnd := GetWindow(handle, gw_hwndfirst);
while wnd <> 0 do 
begin // Не показываем:
if (wnd <> Application.Handle) // Собственное окно
and IsWindowVisible(wnd) // Невидимые окна
and (GetWindow(wnd, gw_owner) = 0) // Дочерние окна
and (GetWindowText(wnd, buff, SizeOf(buff)) <> 0) then
begin
GetWindowText(wnd, buff, SizeOf(buff));
ListBox1.Items.Add(StrPas(buff));
end;
wnd := GetWindow(wnd, gw_hwndnext);
end;
ListBox1.ItemIndex := 0;
end;
А размеры тоже можно узнать, зная хэндл окна, а мы этот хэндл знаем
Посмотрите на подсказки и вставьте одну строку в объявлении переменных, и одну в коде...

Последний раз редактировалось asmodey1; 24.02.2011 в 16:20.
asmodey1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список открытых окон (Handle) Paul Hindenburg Фриланс 4 08.10.2010 13:04
Список с заглавным звеном, из текстового файла получить список из записей и по нему уже сделать задание Zigfried Помощь студентам 2 04.10.2010 20:29
WMI список окон Stilet Win Api 2 23.09.2010 16:09
Как получить список окон кнопок которые появляются на панели задач? Paul Hindenburg Win Api 6 20.02.2009 09:58
Как узнать список всех окон Никки Общие вопросы Delphi 5 23.01.2008 08:10