![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Скажите как можно свернуть все окна при открытии приожения и когда приложение полностью загрузется развернуть все окна  
		
	
		
		
		
		
		
	
		
		
	
	
	Все окна это все окна на панели задач Windows  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Ну неужели так трудно в поисковике набрать? "Delphi свернуть все окна" 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Сразу кучу решений получите.  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Ну тут скорее вопрос о том, что эти окна потом надо обратно развернуть. Недавно писал прогу для работы с окнами. Вот кусок кода, который получает все видимые окна и сохраняет информацию о них: Код: 
	function AddWindow(AHandle : THandle; ListBox : LPARAM) : BOOL; stdcall;
var
  FWndInfo : TWndInfo;
  AText : String;
  PText : Array [0..1023] Of Char;
begin
  If (AHandle <> Application.Handle) And (AHandle <> Application.MainForm.Handle) And
     (IsWindowVisible(AHandle)) And (GetWindow(AHandle, GW_OWNER) = 0) And (IsWindow(AHandle))
    Then
      Begin
        FillChar(PText,Length(PText) * SizeOf(Char),#0);
        GetWindowText(AHandle,@PText,1023);
        AText := StrPas(PText);
        If (AText <> '') And (AText <> 'Program Manager') Then
          Begin
            FWndInfo := TWndInfo.Create(AHandle,AText);
            TListBox(ListBox).Items.AddObject(AText,FWndInfo);
          End;
      End;
  Result := TRUE;
end;
{ TForm1 }
procedure TMainForm.GetWindowsList;
var
  I : Integer;
begin
  lbWindows.Items.BeginUpdate;
  Try
    // Clear
    For I := 0 To lbWindows.Items.Count-1 Do lbWindows.Items.Objects[i].Free;
    lbWindows.Items.Clear;
    lbWindows.Sorted := False;
    // Get new list
    EnumWindows(@AddWindow,LPARAM(lbWindows));
    If lbWindows.Items.Count > 0 Then lbWindows.ItemIndex := 0;
    lbWindows.Sorted := FPreferences.SortOrder = soAlpha;
  Finally
    lbWindows.Items.EndUpdate;
  End;
end;И код класса для хранения информации о найденых окнах: Код: 
	unit WndInfo;
interface
uses
  Windows;
type
  TWndInfo = class
  private
    FHandle : THandle;
    FText : String;
    FIcon : HICON;
    FIsMinimized : Boolean;
  protected
    procedure GetWindowInfo;
  public
    constructor Create(AHandle : THandle; AText : String); virtual;
    destructor Destroy; override;
    procedure ActivateWindow;
    procedure MinimizeWindow;
    property Handle : THandle read FHandle;
    property Text : String read FText;
    property Icon : HICON read FIcon;
    property IsMinimized : Boolean read FIsMinimized;
  end;
implementation
{ TWndInfo }
procedure TWndInfo.ActivateWindow;
begin
  If FHandle <> 0 Then
    Begin
      If IsIconic(FHandle) Then ShowWindow(FHandle,SW_RESTORE);
      SetForegroundWindow(FHandle);
    End;
end;
constructor TWndInfo.Create(AHandle: THandle; AText : String);
begin
  inherited Create;
  FIcon := 0;
  FIsMinimized := False;
  FHandle := AHandle;
  FText := AText;
  GetWindowInfo;
end;
destructor TWndInfo.Destroy;
begin
  inherited;
end;
procedure TWndInfo.GetWindowInfo;
const
  WM_GETICON = $007F;
var
  IconHandle : HICON;
begin
  // Get window state
  Try
    FIsMinimized := IsIconic(FHandle);
  Except
  End;
  // Get icon handle
  Try
    IconHandle := SendMessage(FHandle, WM_GETICON, ICON_SMALL2, 0);
    If IconHandle = 0 Then IconHandle := GetClassLong(FHandle,GCL_HICONSM);
    If IconHandle <> 0 Then FIcon := IconHandle;
  Except
  End;
end;
procedure TWndInfo.MinimizeWindow;
begin
  ShowWindow(FHandle,SW_MINIMIZE);
  FIsMinimized := True;
end;
end. | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 А не проще 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Цитата: 
	
 Код: 
	//Минимизируем все окна на рабочем столе Shell1.MinimizeAll; //Восстанавливаем все окна на рабочем столе Shell1.UndoMinimizeAll;  | 
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
 
Страдалецъ (08.07.2013)
  | ||
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 А вот это интересная инфа, за что и получите пирожок. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 |