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;