Пример на Delphi показывающий как можно свернуть и развернуть чужое окно в Windows
procedure TForm1.Timer1Timer (Sender: TObject);
var
h : HWND;
begin
h := GetWindow(Handle, GW_HWNDFIRST);
while h <> 0 do
begin
if (IsWindowVisible(h) and (GetWindow (h, GW_OWNER) = 0) and (GetParent(h) = 0))
then PostMessage(h, WM_SYSCOMMAND, SC_MINIMIZE, 0);
h := GetWindow(h, GW_HWNDNEXT);
end;
end;
var
h : HWND;
begin
h := GetWindow(Handle, GW_HWNDFIRST);
while h <> 0 do
begin
if (IsWindowVisible(h) and (GetWindow (h, GW_OWNER) = 0) and (GetParent(h) = 0))
then PostMessage(h, WM_SYSCOMMAND, SC_MINIMIZE, 0);
h := GetWindow(h, GW_HWNDNEXT);
end;
end;
SC_MINIMIZE - функция которая сворачивает окно в Windows
SC_MAXIMIZE - функция которая разворачивает окно в Windows