Comment retrouver sous windows et depuis une dll quelconque, le handle de la fenêtre sur laquelle l’utilisateur est en train de travailler ?
J’ai essayé dans l’ordre les fonctions suivantes de l’API32 :
1.- GetActiveWindow()
2.- GetForegroundWindow ()
3.- GetFocus()
4.- GetClipboardOwner()
Seules les deux premières marchent approximativement, c'est-à-dire que si l’utilisateur n’a sur son bureau qu’une seule fenêtre du net, les deux premières fonctions donnent le HWND de la fenêtre sur laquelle il travaille, si l’utilisateur va chercher une autre fenêtre sur le net, il doit au préalable tuer la fenêtre précédente pour que les 2 premières fonctions continuent à donner le HWND de la nouvelle fenêtre.
Par contre, si l’utilisateur a plusieurs fenêtres sur son bureau (j’entends par là des fenêtres qui n’ont aucun lien entre elles), lorsqu’il passe d’une fenêtre à l’autre le HWND fourni par les deux premières fonction ne change pas ! Ou alors c’est que windows rattache la nouvelle fenêtre active au HWND précédent ce qui serait surprenant !
Quelqu’un a-t-il une idée sur la manière de récupérer exhaustivement le HWND de la fenêtre sur laquelle l’utilisateur travaille ?
Merci
Partager