22 Voix

Delphi/Lazarus: Obtenir Handle de la Fenêtre sous le Curseur de la Souris

Question de Invité | 17/03/2023 à 19:57

Je voudrais spécifier la fenêtre qui se trouve actuellement sous le curseur de la souris en utilisant Delphi ou Lazarus. Cela devrait fonctionner sur le système d'exploitation Windows et cela devrait fonctionner dans tout le système, pas seulement dans ma propre application. J'ai besoin de le Handle de cette fenêtre.

Est-ce possible d'une certaine manière? Et si oui, quelqu'un peut-il me dire comment faire?

RépondrePositifNégatif
2Meilleure Réponse2 Voix

Tout d'abord, vous devez déterminer la position actuelle de la souris. Cela peut être fait en utilisant la fonction GetCursorPos(). Après cela, vous pouvez utiliser la fonction WindowFromPoint() pour spécifier la fenêtre à cet emplacement.

Voici un exemple:

var
  ACursorPos: TPoint;
  AHandle: HWND;
begin

  if GetCursorPos(ACursorPos) then begin

     AHandle := WindowFromPoint(ACursorPos);

     if AHandle <> 0 then begin
        SendMessage(AHandle, ..., ..., ...);
     end;
  end;  

end;

Étant donné que les deux fonctions peuvent échouer, vous devez implémenter des conditions comme je l'ai fait dans l'exemple. Seulement si vous êtes sûr que le Handle n'est pas 0, c'est-à-dire qu'une fenêtre a été trouvée, vous devez continuer et utiliser le Handle. Dans l'exemple ci-dessus, nous envoyons un message à la fenêtre correspondante.
18/03/2023 à 21:26

RépondrePositif Négatif
Répondre

Sujets Connexes

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.