Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 297

/ вопрос открыт /

Здравствуйте, эксперты!
Нужно в цыкле перебрать все не свернутие на даний момент окна, и выполнить с ними следующие действия:
Если окно развернуто на весь екран, то нужно его свернуть в окно и установить для его некоторые размеры.
П.С. Также интересно как можно передвигать окна.

Ixer Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Ixer (статус: 2-ой класс)
Вопрос отправлен: 19 мая 2011, 10:29
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Ixer!
Перебор всех окон - это простая задача, избитая до байта. Ключевая функция - enumwindow, вот тут http://www.delphisources.ru/pages/faq/base/enumwindows.html есть пример.
Суть - Вы запускаете эту функцию и передаете ей в качестве параметра свою функцию. Windows перебирает все окна и для каждого из них вызывает Вашу функцию (можно считать, что там скрыт цикл).
А дальше с помощью АПИ можно делать все, что хочется.
например - GetWindowRect возвратит координаты окна (положение верхнего левого угла, ширину и высоту).
IsIconic - Свернуто ли окно
IsZoomed - Максимизировано ли это окно
MoveWindow - Перемещает окно
SetWindowPos - Устанавливает позицию окна
А потом посмотрите на этот пример http://www.delphimaster.ru/articles/winapi/index.html и разберитесь с параметрами этих функций. И комбинируйте их до получения желаемого эффекта.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 19 мая 2011, 10:43
Оценка за ответ: 5

Комментарий к оценке: Прямо в точку

Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 23 мая 2011, 21:26; участников в обсуждении: 2.
pobechuk1988

pobechuk1988 (статус: Посетитель), 23 мая 2011, 21:23 [#1]:

ловить формы на дельфи сложно и муторно... C++ тебе в помощь
bugmenot

bugmenot (статус: 3-ий класс), 23 мая 2011, 21:26 [#2]:

Цитата (pobechuk1988):

ловить формы на дельфи сложно и муторно

чепуха, никаких сложностей нет, кроме (возможно) отсутствия директивы __closure
виконання програми розпочинається з того самого мiсця, де призупинилося.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:27
Выполнено за 0.02 сек.