Handle [Résolu]

Messages postés
162
Date d'inscription
dimanche 19 novembre 2000
Statut
Membre
Dernière intervention
14 avril 2009
- - Dernière réponse : jnmchl
Messages postés
67
Date d'inscription
dimanche 16 octobre 2005
Statut
Membre
Dernière intervention
13 novembre 2009
- 1 avril 2008 à 21:42
Bonjours,
je voudrai savoir comment connaitre le handle de n'importe quel control se trouvant sous le curdeur de la souris, meme si il est en dehors de l'aplication
merci
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
1708
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
5 octobre 2019
1
3
Merci
Holala... pfff...

Tout simplement :

var
  P: TPoint;
  Handle: THandle;
begin
  GetCursorPos(P);
  Handle := WindowFromPoint(P);
  Label1.caption := IntToStr(Handle);
end;

La chaleur, c'est sûr...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 207 internautes nous ont dit merci ce mois-ci

Commenter la réponse de japee
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26
0
Merci
un petit exemple :

function GetClassNameEnh(const p : TPoint): string;
var
  Handle   : Hwnd;
  ClassName: PChar;
begin
  Handle := WindowFromPoint(P);
  getmem(ClassName, 40);
  windows.GetClassName(Handle, ClassName, 40);
  Result := ClassName;
  Freemem(ClassName);
end;




GetCursorPos(P);
Label1.caption := GetClasseNameEnh(P);
Commenter la réponse de f0xi
Messages postés
1201
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
10 septembre 2011
3
0
Merci
Salut,

si je peux me permettre f0xi : il faut remplacer
Label1.caption := GetClasseNameEnh(P); // "e" en trop à Class par
Label1.caption : = GetClassNameEnh (P); auquel cas ça ne marche pas puisque delphi ne saura pas qu'il faut appeler cette fontion (logique puisque le nom de la fonction est mal écrit)

@+
 Matt

<hr size ="2" width="100%" />La paresse est la mère du génie...
Commenter la réponse de Matt 261
Messages postés
1708
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
5 octobre 2019
1
0
Merci
Je dirais même plus...

function GetHandle(const p : TPoint): string;
var
  Handle   : Hwnd;
  ClassName: PChar;
begin
  Handle := WindowFromPoint(P);
  getmem(ClassName, 40);
  windows.GetClassName(Handle, ClassName, 40);
  Result := IntToStr(Handle);
  Freemem(ClassName);
end;



procedure TForm1.Timer1Timer(Sender: TObject);
var P: TPoint;
begin
  GetCursorPos(P);
  Label1.caption : = GetHandle(P);
end;


Ca fait deux fois que tu le postes ce code, f0xi... tu as un peu de mal à le placer, on dirait ?  lol
Commenter la réponse de japee
Messages postés
162
Date d'inscription
dimanche 19 novembre 2000
Statut
Membre
Dernière intervention
14 avril 2009
0
Merci
Merci bcp a tous !
Commenter la réponse de flo160fr
Messages postés
67
Date d'inscription
dimanche 16 octobre 2005
Statut
Membre
Dernière intervention
13 novembre 2009
1
0
Merci
oui ou encore en une ligne :

Label1.Caption:=IntToStr(WindowFromPoint(Mouse.CursorPos));

Question supplémentaire :
Et si le contrôle sous la souris est grisé (enable=false) ?

Jean-Michel
Commenter la réponse de jnmchl