Identifier une fenêtre de façon unique
Le
TSalm

Bonjour,
Je liste les fenêtre avec "EnumWindows". Mais je voudrais identifier ces
fenêtres de façon unique et permanente dans le système.
Est-ce que le handle est fiable ? Ou y a t-il une meilleur solution ?
A+
-TSalm
Je liste les fenêtre avec "EnumWindows". Mais je voudrais identifier ces
fenêtres de façon unique et permanente dans le système.
Est-ce que le handle est fiable ? Ou y a t-il une meilleur solution ?
A+
-TSalm
Oui, le handle est unique, pour la session courante
Merci
Finalement, un handle n'est pas complétement fiable :
http://msdn.microsoft.com/en-us/library/ms633528(v=VS.85).aspx
<Further, because window handles are recycled the handle could even
point to a different window.>
Arg, il n'y a pas d'autre solution que les handles pour identifier une
fenêtre ?
J'avais trouvé :
uidWin = GetClassLong( _hWin , GCW_ATOM );
mais les fenêtres CMD ont toutes le même identifiant...donc pas bon non
plus :-(
Quel est le but ?
Le handle est bien unique pour identifier une fenêtre, à un instant t
donné...
Je fait un petit outil qui permet de changer la propriété de fenêtres
(placer en Topmost ou non par exemple).
Je liste les fenêtres à interval régulier.
Après réflexion, puisque je ne gére plus les fenêtres si elles sont
fermées, je ne peux pas récuperer un handle d'une autre fenêtre, le
recyclage se faisant seulement sur des fenêtres fermées si je ne me trompe
pas.
A+
TSalm
Oups, je n'ai pas répondu précisément à la question.
J'ai besoin d'identifier de façon unique une fenêtre car je dois vérifier
que les fenêtres mémorisées dans ma liste des fenêtres sont, oui ou non,
encore présentes dans les fenêtres effectivement affichés sur le bureau.
Il n'est donc pas question qu'un identifiant de fenêtre varie d'un appel à
un temps t et à un temps t+1.
Mais si tu fais un EnumWindows() en temps-réel dans un thread, tu auras
toujours les bonnes fenêtres (comme le Task Manager par ex)
Je garde donc mes handles en tant qu'identifiant.
Merci Christian