Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2008, 20:44   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 661
Восклицание Свернуть окна

Подскажите как программно свернуть все окна
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 05.06.2008, 21:03   #2
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

winexec(Pchar('rundll32 user,tilechildwindow'),sw_Show);
beegl вне форума Ответить с цитированием
Старый 05.06.2008, 21:09   #3
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Выдает ошибку:

"Ошибка при загрузке user. Не найден указанный модуль."
Dux вне форума Ответить с цитированием
Старый 05.06.2008, 21:33   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Попробуй это, подправь только
Код:
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);
ShowMessage('Minimized: '+IntToStr(Count)+' windows');
End.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 05.06.2008, 21:45   #5
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

или это:
Код:
var  
  Form1: TForm1;  
  Count: integer;  
implementation  
  
{$R *.dfm}  
function EnumProc(WinHandle: HWnd; Param: LongInt): Boolean; stdcall;  
begin  
if (GetParent(WinHandle) = 0) and (not IsIconic(WinHandle)) and  
(IsWindowVisible(WinHandle)) then  
begin  
PostMessage(WinHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0);  
Inc(Count);  
end;  
EnumProc := TRUE;  
end;  
  
procedure TForm1.Button1Click(Sender: TObject);  
begin  
Count := 0;  
EnumWindows(@EnumProc, 0);  
end;  
  
end.
From Stilet: Про оформление кода не забываем

Последний раз редактировалось Stilet; 06.06.2008 в 15:10.
beegl вне форума Ответить с цитированием
Старый 05.06.2008, 23:19   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Можно сделать так:
Код:
Procedure MinAll;
Begin
Keybd_event(VK_LWIN,0,0,0);
Keybd_event(77,0,0,0);
Keybd_event(VK_LWIN,0,KEYEVENTF_KEYUP,0);
End;

Procedure TForm1.Button1Click(Sender: TObject);
Begin
MinAll;
End;
From Stilet: Про оформление кода не забываем
Всегда рад помочь!

Последний раз редактировалось Stilet; 06.06.2008 в 15:10.
Terran вне форума Ответить с цитированием
Старый 06.06.2008, 14:49   #7
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 661
По умолчанию

Цитата:
Сообщение от Dux Посмотреть сообщение
Выдает ошибку:

"Ошибка при загрузке user. Не найден указанный модуль."
А подскажите почему выдает такую ошибку и как исправить
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 06.06.2008, 15:15   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
почему выдает такую ошибку
Наверное потому что user.dll в Винде не существует
И вообще tilechildwindow во-первых не так пишется (регистр букв учитывается) а во-вторых она никоим образом ничего не сворачивает.
I'm learning to live...

Последний раз редактировалось Stilet; 06.06.2008 в 15:24.
Stilet вне форума Ответить с цитированием
Старый 06.06.2008, 18:50   #9
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

ошибка скорее всего из-за того, что этот код доступен для 90х Виндовсов
beegl вне форума Ответить с цитированием
Старый 06.06.2008, 19:16   #10
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Вот так все работает, проверил в Vista:

Код:
unit Unit1;
interface
uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;
type
    TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    private
     { Private declarations }
    public
     { Public declarations }    end;var
   Form1: TForm1;
   Total:integer;

implementation

{$R *.dfm}

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(Total);  EnumProc := TRUE;
   End;

procedure TForm1.Button1Click(Sender: TObject);
   Begin
     Total:=0;
     EnumWindows (@EnumProc, 0);
   End;

end.
Dux вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Свернуть все окна Veiron Общие вопросы Delphi 7 24.05.2012 16:13
Свернуть все окна Altera Win Api 2 22.05.2008 09:26
Размер окна в зависимости от размера окна Reverent JavaScript, Ajax 1 02.02.2008 15:49
закрыть все дочерни окна, кроме главного окна Worms Общие вопросы Delphi 2 03.12.2007 22:18
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13