![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как можно программно свернуть все окна?
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);