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

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

Как свернуть все окна? [D7, WinXP]


tytus ©   (2004-05-22 11:19:00) 

Добрый день господа. Подскажите,какое сообщение послать системе чтобы свернуть все окна?


Sur   (2004-05-22 13:21:00) [1]

{$APPTYPE CONSOLE}
program Minimize;
uses Windows,Messages;
var Count:integer;

function EnumProc (WinHandle: HWnd; Param: LongInt): Boolean; stdcall;
begin
 if (GetParent (WinHandle) = 0) and (not IsIconic (WinHandle)) and
    (IsWindowVisible (WinHandle)) then
   PostMessage (WinHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
   Inc(Count);
 end;
 EnumProc := TRUE;
end;

begin
 Count:=0;
 EnumWindows (@EnumProc, 0);
 Writeln('Minimized:',Count,' windows');
end.


default   (2004-05-22 11:58:00) [2]

всем всем?даже тем которые невидимы, свёрнуты, ...?
можно через GetForegroundWindow сделать


KADAN   (2004-05-22 11:51:00) [3]

или можешь использовать BroadcastSystemMessage


KADAN   (2004-05-22 11:41:00) [4]

можно вот таким смешным путем:
 keybd_event(VK_LWIN,0,0,0);
 keybd_event(ord('M'),0,0,0);
 keybd_event(ord('M'),0,KEYEVENTF_KEYUP,0);
 keybd_event(VK_LWIN,0,KEYEVENTF_KEYUP,0);


:-)


Наверх

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