Fenetre active [Résolu]

Signaler
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009
-
Messages postés
1724
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2020
-
salut
quelqu'un peut m'expliquer comment determiner le nom de la fenetre active !!!! (determiner le texte dans la barre de titre de la fenetre active )
merci d'avance

merci ;)

6 réponses

Messages postés
76
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
13 novembre 2008
1
function ActiveCaption: string;
var
  Handle: THandle;
  Len: LongInt;
  Title: string;
begin
  Result := '';
  Handle := GetForegroundWindow;
  if Handle <> 0 then
  begin
    Len := GetWindowTextLength(Handle) + 1;
    SetLength(Title, Len);
    GetWindowText(Handle, PChar(Title), Len);
    ActiveCaption := TrimRight(Title);
  end;
end;
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
screen.activeform.caption ?
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009

salut
-determiner le nom de la fenetre active sur windows pas de mon application :)
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009

apparement c'est GetForeGroundWindow pour renvoyer le handle de la fenetre active mais comment l'utiser pour afficher le texte de cette fenetre  Getwindows text ?

merci ;)
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009

salut
merci ça marche trés bien mais pourquoi le +1 et c'est quoi le trimright ?
merci d'avance
Messages postés
1724
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2020
6
Salut,

Je suppose :
+ 1 parce que GetWindowText retourne un résultat tronqué d'un caractère dans la plupart des cas => donc TrimRight pour les autres cas.

Personnellement, je prèfère utiliser un array of Char pour récupérer la valeur, ça simplifie et raccourcit le code :

var
  Handle: THandle;
  Title: array[0..255] of Char;
begin
  Result := '';
  Handle := GetForegroundWindow;
  if Handle <> 0 then
  begin
    GetWindowText(Handle, Title, SizeOf(Title));
    Result := Title;
  end;
end;

Bonne prog'