Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Ocultar ventanas en el escritorio (https://www.clubdelphi.com/foros/showthread.php?t=5375)

roman 19-11-2003 19:35:24

Ocultar ventanas en el escritorio
 
Existe un botoncito en la barra de tareas de Windows que al oprimirlo oculta todas las ventanas que haya abiertas; seguro lo han visto :) .

¿Cómo hago esto en código? ¿Debo usar EnumWindows para ocultar una por una o existe alguna función de la API que facilite esto?

// Gracias

delphi.com.ar 19-11-2003 20:33:41

¿Ocultar = Minimizar?
Puedes usar EnumWindows, o... prueba esto:

Código:

var
  hWnd: THandle;
begin
  hWnd := FindWindow('Shell_TrayWnd', nil);
  if hWnd <> 0 Then
    PostMessage(hWnd, WM_COMMAND, $001A3, 0);
end;


Saludos!

roman 19-11-2003 20:45:17

¡Muy bueno el truco!. ¿De casualidad sabes cual es entonces el id del menú "Deshacer Minimizar todo para hacer lo inverso?

// Gracias

delphi.com.ar 19-11-2003 21:06:33

Código:

MINIMIZE_ALL = $01A3;
RESTORE_ALL = $01A0;

Los nombres de estas constantes son inventados. Tené en cuenta que esto no se si funciona en todos los Windows, no recuerdo si Win95 tenía esta opción de menú (creo que sí). Si lo haces con EnumWindows, seguramente funcione en todas las plataformas.

Saludos!

roman 19-11-2003 21:36:20

Cita:

delphi.com.ar comentó:
Código:

MINIMIZE_ALL = $01A3;
RESTORE_ALL = $01A0;


Je, je, gracias otra vez. Estuve intentando distintos códigos sólo que en la dirección contraria:

$01A4, $01A5, $01A6, ...

:D

// Saludos

roman 11-02-2004 07:57:44

Bueno, este es un tema de hace tres meses pero buscando otra cosa me encontré esto que puede interesarle a alguien:

Código:

uses
  ComObj;

procedure OcultarVentanas;
var
  Shell: OleVariant;

begin
  Shell := CreateOleObject('Shell.Application');
  Shell.MinimizeAll;
  Shell := Unassigned;
end;

procedure MostrarVentanas;
var
  Shell: OleVariant;

begin
  Shell := CreateOleObject('Shell.Application');
  Shell.UndoMinimizeAll;
  Shell := Unassigned;
end;

// Saludos


La franja horaria es GMT +2. Ahora son las 05:31:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi