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?
Sujets Connexes
Delphi/Lazarus: La touche ALT, SHIFT ou CTRL est-elle enfoncée?
Tutoriel | 0 Commentaires
Pipette: Obtenir des Couleurs de tout l'Écran
Tutoriel | 0 Commentaires
Delphi/Lazarus: Récupérer la Position du Curseur par rapport au Form/Fenêtre
Conseil | 0 Commentaires
Lazarus: Charger Fichier en tant que Array d'Octets et Enregistrer Array d'Octets en tant que Fichier
Tutoriel | 0 Commentaires
Delphi/Lazarus: Obtenir le Handle de la Fenêtre ciblée
Question | 1 Réponse
Delphi/Lazarus: Comment faire défiler déjà en déplaçant la barre de défilement
Question | 1 Réponse
Delphi: Afficher d'autres Fenêtres en plus de la Fenêtre Principale en la Barre des Tâches
Conseil | 0 Commentaires
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.
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