Ver Mensaje Individual
  #1  
Antiguo 01-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: Dec 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.646
Reputación: 27
dec Tiene un aura espectaculardec Tiene un aura espectacular
Activar una aplicación, incluso cuando se encuentre iconizada

El siguiente procedimiento activa (pone al frente) una aplicación aun cuando esta se encuentre minimizada en la barra de tareas, por ejemplo.

El procedimiento se basa en el código fuente de la unidad "UIApp.pas" escrita por Román, un compañero de los Foros, y que puede encontrarse en la página Web de Román: www.romansg.net

La unidad "UIApp.pas" puede utilizarse para evitar segundas instancias de nuestra aplicación. Quien esto suscribe recomienda que se le eche un vistazo al código fuente que Román ofrece en su página Web.

Código Delphi [-]
uses
  Windows, ShellApi;

procedure ActivarApp;
var
  FgThreadId  : DWORD;
  AppThreadId : DWORD;
begin
  if IsIconic(Application.Handle) then
    ShowWindow(Application.Handle, SW_RESTORE)
  else
  begin
    FgThreadId  := GetWindowThreadProcessId(GetForegroundWindow, nil);
    AppThreadId := GetWindowThreadProcessId(Application.Handle, nil);
    AttachThreadInput(AppThreadId, FgThreadId, true);
    SetForegroundWindow(Application.Handle);
    AttachThreadInput(AppThreadId, FgThreadId, false);
  end;
end;
Responder Con Cita