Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как можно программно свернуть все окна?


Kick ©   (2002-06-19 13:44:00) 

Как можно программно свернуть все окна?


Song   (2002-07-19 14:35:00) [1]

>>Как можно программно свернуть всеокна?

:-))

PostMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MINIMIZE,0);


Незарегистрированный   (2002-07-19 13:06:00) [2]

>To zmy
Подскажите пожалуйсьа, где можно почитать про эти интерфейсы и посмотреть примеры их использования (применительно к Delphi).


zmy   (2002-07-19 08:41:00) [3]

Делаешь Project->Import Type Library->Microsoft Shell Controls And Automation
Потом в uses - Shell32_TLB

var Sh: IShellDispatch;
Begin
Sh := CoShell.Create;
Sh.UndoMinimizeAll;
и
Sh.MinimizeAll;

end;


Victor   (2002-07-05 06:27:00) [4]

По моему можно сделать всё проще (единственная опастность в этом случае что и рабочий стол тоже свернёться:))а так всего одна строчка
sendmessage(findwindow(nil,""),wm_syscommand,sc_minimaize,0);
ну вроде бы всё:)


sndanil   (2002-06-21 14:00:00) [5]

...а еще вместо PostMessage можно использовать CloseWindow... забавно правда? эта функция минимизирует окно, а не закрывает...


Stone   (2002-06-20 22:59:00) [6]

procedure MinimizeAllApp;
VAR
Wnd : hWnd;
buff: ARRAY [0..127] OF Char;
begin
Wnd := GetWindow(MainForm.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
{тут во и пишешь:}
PostMessage(wnd, WM_SYSCOMMAND, SC_MINIMIZE, 0);
{или что-то вроде этого}
END;
Wnd := GetWindow(Wnd, gw_hWndNext);
END;
end;


Игорь Шевченко   (2002-06-20 10:28:00) [7]

Kick (19.06.02 18:25)

Если надо свернуть все, то в процедуре вызываемой из EnumWindows
надо отфильтровать только те окна, которые отображаются на экране. Иначе много чего можно насворачивать


Volj   (2002-06-19 18:58:00) [8]

GetFocusили GetForegroundWindow.


Kick   (2002-06-19 18:25:00) [9]

ПОМОГИТЕ ПОЖАЛУЙСТА!


Kick   (2002-06-19 14:03:00) [10]

А как получить Handle активного в данный момент окна?


Sasha9   (2002-06-19 13:51:00) [11]

или имитировать нажатие кнопок win+m


Игорь Шевченко   (2002-06-19 13:47:00) [12]

Каждому окну послать сообщение PostMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);


Наверх

Титульная страница Поиск, карта сайта Написать письмо