Hola,
Con la función del API de Windows "GetForegroundWindow()" obtenemos el "Handle" de la ventana en primer plano. A partir de ahí, la verdad es que no estoy muy puesto, pero, por ejemplo, podríamos obtener el título de la ventana con la función "GetWindowText()", que, justamente, necesita el "Handle" de una ventana.
Código Delphi
[-]
procedure TForm1.Timer1Timer(Sender: TObject);
var
h: THandle;
p: array[0..MAX_PATH] of Char;
begin
h := GetForegroundWindow();
if (h <> 0) then begin
GetWindowText(h, p, SizeOf(p));
Caption := StrPas(p);
end;
end;